一种基于Python的较快速的水仙花数的搜寻方法

作者:分开不是尽头 | 创建时间: 2023-05-06
在下面的两篇文章里面,我用简单却低效的方法搜寻水仙花数,结果在搜寻8位数的水仙花数的时候,用时长达半个小时。 本文,学习大牛们的一种改进的算法。这是一种基于python的方法。...
一种基于Python的较快速的水仙花数的搜寻方法

操作方法

首先,我需要加载两个模块: from itertools import combinations_with_replacement from time import clock

再定义一个筛选n位数的水仙花数的函数。

然后开始搜寻水仙花数,分别搜寻3位数到19位数的水仙花数,同时测试代码运行时间。

运行,可以发现,3位数到8位数的水仙花数,用时都不超过1秒。

9位数到15位数的水仙花数,用时都不超过1分钟。

随着位数的增加,用时越来越长,哪怕一个水仙花数都没有,也不会节省一秒钟时间。 比如,不存在18位数的水仙花数,但是用时却超过了4分钟; 19位数的水仙花数有4个,用时超过6分钟。

温馨提示

后面,我会介绍大牛们更厉害的代码,是基于Mathematica的代码。
点击展开全文

更多推荐