九位不同数字乘法等式的优化算法.pdf

九位不同数字乘法等式的优化算法.pdf

ID:52475483

大小:933.97 KB

页数:3页

时间:2020-03-28

九位不同数字乘法等式的优化算法.pdf_第1页
九位不同数字乘法等式的优化算法.pdf_第2页
九位不同数字乘法等式的优化算法.pdf_第3页
资源描述:

《九位不同数字乘法等式的优化算法.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、学术探讨∙算法研究九位不同数字乘法等式的优化算法陈勇(遵义职业技术学院,贵州遵义563000)[摘要]对“九位不同数字构成乘法等式”的问题进行研究分析,深入探讨其解决方案,根据NP问题穷举算法设计的常规思路,设计了一种更加优化的穷举算法,实验证明该算法是正确高效的。[关键词]NP问题;穷举算法;优化算法;高效中图分类号:TP302文献标识码:A文章编号:1008-6609(2016)07-0046-03式中最小的因子组合,而其积3335也不满足数字互不相同的1引言规则,这也说明最小乘积至少大于3000,由于1或者2用于因文

2、献[1]使用数字{1,2,3,4,5,6,7,8,9}组成形如X×Y=Z子,那么最小乘积至少为3456。因此,进一步缩小乘积的范的乘法等式,在该等式中使用且仅使用九个数字中的每个数围是3456~9876。字一次,列举出了所有符合条件的等式。“九位不同数字构成3算法设计乘法等式”的问题显然是NP[2]问题,采取常用数学分析算法(1)在3456至9876中按序取1数,如果已取完则执行求解非常困难,此类问题常采用穷举算法求解[3]。实现的具(9);体方法很多,用递归与非递归回溯算法实现比较耗时,本文(2)所取数的4位数字用预处理

3、判断是否相异,否则执行提出了一种基于预处理[4]的更加优化的穷举算法,其算法大(1);大减少了程序运行的时间。(3)所取数是否被2~9中某一数整除,否则执行(6);2问题分析(4)商为4位数且9个数字相异,否则执行(6);根据文献[1]可知,9个数字分别为任意的且互不相同的(5)输出一个解;a1,a2,a3,…,a9,所谓符合条件的等式其实是在排列(6)所取数是否被12~98中某一数整除,否则执行(1);a1a2a3a4a5a6a7a8a9中找到可使等式成立的乘号、等号的位置,(7)商为3位数且9个数字相异,否则执行(1)

4、;即确定两个因子的数字位数。满足等式有两种情形(排除乘(8)输出一个解,执行(1);法交换律的等价等式):(9)结束。(a03210321×10)×(a2×10+a3×10+a4×10+a5×10)=(a6×10+a7×10+4算法实现a108×10+a9×10)(1)(a10210324.1算法预处理1×10+a2×10)+(a3×10+a4×10+a5×10)=(a6×10+a7×10+a10用预处理判断乘积中4个数字是否重复,即在穷举乘积8×10+a9×10)(2)穷举数字{1,2,3,…,9}的所有排列非常耗时,通

5、过分析的排列时,用预处理过滤掉乘积中有相同数字的乘积,减少发现只要穷举乘积的排列就可大大减少计算时间,即乘积范搜索空间。围为1234~9876。进一步研究缩小乘积范围,在(1)式中最intjudge1(intx)小的乘积是1×2345=2345,但1位数字因子不可能是1,那么{最小的1位因子只可能大于等于2,因此构造另一个最小的inta,b,c,d;乘积是2×1345=2690,根据数字互不相同的规则容易得出,a=x/1000;满足等式的最小乘积至少大于3000;同理可知,23×145是(2)b=x%1000/100;——

6、————————————作者简介:陈勇,男,贵州遵义人,讲师,研究方向:媒体制作与网站建设。-46-学术探讨∙算法研究c=x%100/10;if(a==a3

7、

8、a==b3

9、

10、a==c3

11、

12、a==d3

13、

14、a==a2

15、

16、a==b2)d=x%10;return0;if(d==0

17、

18、b==0

19、

20、c==0)elseif(b==a3

21、

22、b==b3

23、

24、b==c3

25、

26、b==d3

27、

28、b==a2

29、

30、b==b2)return0;return0;if(a==b

31、

32、a==c

33、

34、a==d)elseif(c==a3

35、

36、c==b3

37、

38、c==c3

39、

40、c==

41、d3

42、

43、c==a2

44、

45、c==b2)return0;return0;elseif(b==c

46、

47、b==d

48、

49、c==d)elseif(d==a3

50、

51、d==b3

52、

53、d==c3

54、

55、d==d3

56、

57、d==a2

58、

59、d==b2)return0;return0;elseelseif(a2==a3

60、

61、a2==b3

62、

63、a2==c3

64、

65、a2==d3)return1;return0;}elseif(b2==a3

66、

67、b2==b3

68、

69、b2==c3

70、

71、b2==d3)4.2判断乘积等式是否符合条件return0;intjudge2(intx,inty,int

72、z)elseif(a3==b3

73、

74、a3==c3

75、

76、a3==d3){return0;inta,b,c,d;elseif(b3==c3

77、

78、b3==d3

79、

80、c3==d3)inta2,b2;return0;inta3,b3,c3,d3;elsea=x/1000;return1;b=x%1000/100;}c=x

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。