本文共 2824 字,大约阅读时间需要 9 分钟。
某厂生产一种弹子锁,其槽数高度可以用1到6中取5个来表示。其限制条件是:至少在5个中有3个不同的数;相邻槽的高度相差不能为5。在实际试验中,发现若二锁对应5个槽的高度中有4个相同,另一个差1则可能互开,否则,不可能互开。如果60个锁具装一箱,求一批锁的多少及装箱数,并要求提出一种方案,使团体顾客减少或不再抱怨,并对于所提出的方案,求出其最大无互开的箱数,并衡量原来随机装箱时,顾客抱怨互开的程度。
1.锁具个数
利用排除法的思想,通过Python语言,逐步剔除不符合要求的锁具,可得有5880个锁具,每60个一箱,可装98箱,代码如下:lists = [1,2,3,4,5,6]list_alls = []for list_1 in lists: for list_2 in lists: for list_3 in lists: for list_4 in lists: for list_5 in lists: list_alls.append([list_1,list_2,list_3,list_4,list_5])print(len(list_alls))list_deletes_1 = []for list_all in list_alls: counts = list(set(list_all)) if len(counts) <= 2: pass else: list_deletes_1.append(list_all)print(len(list_deletes_1))list_deletes_2 = []for list_all_1 in list_deletes_1: if abs(list_all_1[0] - list_all_1[1]) == 5: pass elif abs(list_all_1[1] - list_all_1[2]) == 5: pass elif abs(list_all_1[2] - list_all_1[3]) == 5: pass elif abs(list_all_1[3] - list_all_1[4]) == 5: pass else: list_deletes_2.append(list_all_1)print(len(list_deletes_2))
2.装箱方案设计
首先证明d9→d11→…→d27→d 8→d10→d12→… →d27无互开现象。设其中某列表为[a,b,c,d,e](a+b+c+d+e=i为奇数),则(a±1)bcde,a(b±1)cde,ab(c±1)de,abc(d±1)e,abcd(e±1),当筛选其含相邻差为5或有位为0的不合条件项外,则可知 a+b+c+d+e±1=i(±1) 则其为偶数,与d9→d27中任一元素(组合)都不可能相同,对于d8→d10→…→d26类似。 由此可证明49箱为最大无互开箱数,也就是奇偶分箱方案。 3.顾客抱怨定量度量 利用Python计算所有可能互开对为22778,平均互开系数α=0.001317,对于一箱互开个数约2.33,二箱互开个数约9.42,代码如下:import randomi = 0xiangjian_list = []hukai_counts = []list_randoms = random.sample(list_deletes_2,60)for list_randoms_1 in list_randoms: i = i+1 for list_randoms_2 in list_randoms[i:]: list_1 = [list_randoms_1[0] - list_randoms_2[0],list_randoms_1[1] - list_randoms_2[1],list_randoms_1[2] - list_randoms_2[2],list_randoms_1[3] - list_randoms_2[3],list_randoms_1[4] - list_randoms_2[4]] xiangjian_list.append(list_1)for list_2 in xiangjian_list: if (list_2.count(0) == 4): if (list_2.count(1) == 1 | list_2.count(1) == 1): hukai_counts.append('a')print(len(hukai_counts))
转载地址:http://rxlia.baihongyu.com/