实验报告九、使用枚举法验证6174猜想

一、实验目的:

1、了解6174猜想的内容。

2熟练使用选择结构和循环结构

3、了解标准库itertoolscombinations()函数的用法。

4、熟练使用字符串的join(方法。

5、熟练使用内置函数int()str() sorted()

二、实验内容:

1955年,卡普耶卡对4位数字进行了研究,发现一个规律:对任意各位数字不相同的4位数,使用各位数字能组成的最大数减去能组成的最小数,对得到的差重复这个操作,最终会得到6174这个数字,并且这个操作最多不会超过7次。

编写程序,使用枚举法对这个猜想进行验证。

举例:

若生成了4个数字:0,1,2,3:

3210-0123=3087  (python中:int('0123')=123)

8730-0378=8352

8532-2358=6174

上述计算仅3次,未超过7次,6174猜想针对0,1,2,3检验通过。

  • 实验步骤:
  1. 程序代码
import itertoolss=list(itertools.combinations(range(10), 4))#print(s)for i in s:snum=''.join(list(map(lambda x:str(x),i)))count =0flag=Falsefor j in range(8):l=sorted(snum)min=int(''.join(l))print('min',min)max=int(''.join(reversed(l)))print('max:',max)if(max-min==6174):flag=Truebreakelse:snum=str(max-min)if(flag==False):breakif(flag):print('6147猜想正确')else:print('6147猜想错误')
  1. 结果图片