思特奇杯·云上蓝桥 -算法 集训营第一周-5.图书排列

题目描述

将编号为 1~10 的 10 本书排放在书架上,要求编号相邻的书不能放在相邻的位
置。
请计算一共有多少种不同的排列方案。

解法一

解题思路

蛮力法
1.求出十本书的全排列,存入数组temp_list
2.编写check()函数判断某一确定排列是否有两本书在编号相邻的同时位置相邻,如果存在返回false,表示该排列不成立,否则,则相反。
3.遍历temp_list数组求成立排列个数

python代码

#图书排列,答案479306

#判断该排列顺序是否矛盾,不矛盾返回true
def check(a):
    length = len(a)
    for i in range(1,length):
        if abs(a[i] - a[i-1]) ==  1:
            return False
    return True

#全排列
def permutation(a, Already_num):
    global temp_list
    if len(a) == 0:
        temp_list.append(Already_num)
        return
    for i, element in enumerate(a):
        permutation(a[:i]+a[i+1:], Already_num+[element])
    return temp_list
if __name__ == "__main__":
    a = [1,2,3,4,5,6,7,8,9,10]
    temp_list = []
    permutation(a,[])
    ans = 0
    for l in temp_list:
        if check(l):
            ans += 1
    print(ans)

运行结果
在这里插入图片描述

java代码

package 蓝桥杯训练营第一周作业;
/*图书排列,答案479306*/
public class homework05 {
	/*判断该排列顺序是否矛盾,不矛盾返回true*/
	private static boolean check(int[] a) {
		for (int i=1; i < a.length; i++) {
			if( a[i] -a[i-1] == 1 || a[i] -a[i-1] == -1)
				return  false;
		}
		return true;
	}
	static int ans;
	/*全排列*/
	private static int permutation(int[] a,int start,int  end) {
		int i,tmp;
		if (start == end) {
//			for (j = 0; j < a.length; j++) {
//				System.out.printf("%d ",a[j]);
//			}
			//System.out.println();
			if (check(a)) {
				ans += 1;
				//System.out.println(true+" ans = "+ans);
			}
//			else
//				System.out.println(false);
		}
		for (i = start; i < a.length; i++) {
			tmp = a[start];a[start] = a[i];a[i] = tmp;  //交换a[start]和a[i]的值
			permutation(a,start+1,end);
			tmp = a[start];a[start] = a[i];a[i] = tmp;//交换a[start]和a[i]的值
		}
		return ans;
	}
	
	public static void main(String[] args) {
		int[] a = new int[]{1,2,3,4,5,6,7,8,9,10};
		int res;
		ans = 0;
		res = permutation(a,0,a.length);
		System.out.println(res);
	}

}

运行结果
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 思特威(Datasheet)是一种技术文档,其主要目的是提供有关特定产品或设备的技术规格和详细信息。通过阅读思特威,用户可以了解该产品的功能、性能、尺寸、接口和电气特性等重要信息。 在思特威中,常见的内容包括产品的规格参数、功能特点、性能指标、工作条件、接口定义、电器特性、示意图以及连接示例等。这些信息对于开发人员、工程师、以及产品消费者都非常重要。工程师们可以利用思特威来了解和评估产品是否满足其需求和规格要求。消费者则可以通过思特威了解产品的功能和性能,以便做出购买决策。 思特威通常以简洁且易读的方式呈现,使用技术术语和图表来提供必要的信息。一份完整的思特威应该包括产品的物理尺寸和重量、工作电压和功率要求、接口类型和规格、传输速率、最大传输距离、环境工作温度范围、支持的协议标准等。 对于技术人员来说,思特威是他们在设计和开发产品时的重要参考资料。通过对Datasheet进行仔细研究,他们可以更好地了解产品的特性和限制,从而能够做出更好的设计决策。同时,思特威还可以作为售后服务的重要参考,提供产品的详细规格和性能信息,以便用户能够更好地了解和操作产品。 总而言之,思特威是一份技术文档,旨在提供关于特定产品的详细规格和技术信息。通过阅读思特威,用户可以全面了解产品的功能、性能和特性,以及使用该产品时的限制和条件。 ### 回答2: 思特威 datasheet 是指思特威公司产品的技术规格表。该规格表提供了关于该产品的详细信息,包括但不限于产品的规格、性能参数、接口配置、功能特点等。 在思特威 datasheet 中,首先会列出产品的基本信息,例如产品名称、型号以及适用范围等。接下来,会详细介绍产品的物理外观和尺寸,以及各个接口的类型和数量。这些信息对于用户来说非常重要,可以帮助他们了解产品的大小和适应性。 此外,datasheet中还会列出产品的性能参数,包括但不限于传输速率、工作温度范围、功耗、电压要求等。这些参数对用户来说也是至关重要的,可以帮助他们确定产品是否符合其需求。 在datasheet中,还会详细描述产品的功能特点和技术规格。例如,如果是一款网络设备,会介绍其支持的网络标准、安全功能、管理方式等。通过这些介绍,用户可以更好地了解产品的性能和功能,从而更好地评估其是否适合自己的应用场景。 综上所述,思特威 datasheet 是一份非常重要的技术规格表,提供了关于该产品的详细信息。通过阅读和理解该规格表,用户可以更好地了解产品的性能、功能和适用性,从而做出正确的购买和使用决策。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值