是否可以生成容易记住的1000000到9999999之间的随机数?
我知道easy to remember
这个词是相对的,但我相信对于你的典型人来说,数字331332比537106更容易记住(或者是它?)
用例。我正在为应用程序中的人生成唯一的数字,并且我认为我可以通过分配它们easy numbers
来尝试让人们更容易。我玩的方式是第一个注册的人获得简单的数字,从那里容易减少。
如果您在任何编程语言中都看到相同的内容,那么您可以向其他人发布灵感
那里有一个similar question here,但这本质上是字母数字,而且是六年前的
答案 0 :(得分:2)
在这里,我发现了一些令人难忘的东西: http://www.slideshare.net/cntryrckr69/what-makes-a-number-memorable
我已经基于其中的一些东西在python中实现了它
以下是代码的含义:
import random
def easynum(num):
num = str(num)
if len(set(num)) <= 2: # common characters eg. 1114111
print("common")
return True
if num == num[::-1]: # its the same backwards eg. 1234321
print("reversible")
return True
if all(x <= y for x, y in zip(list(num), list(num)[1:])): # increasing, e.g. 123456789
print("increasing")
return True
if all(x >= y for x, y in zip(list(num), list(num)[1:])): # decreasing
print("decreasing")
return True
for count in range(10):
rand = random.randint(1000000, 9999999)
while easynum(rand) == None:
rand = random.randint(1000000, 9999999)
print(rand)
以下是我得到的输出:
reversible
5691965
reversible
9585859
increasing
1112557
reversible
9057509
reversible
3831383
decreasing
8322000
increasing
1122356
common
4884484
decreasing
9887320
common
4004040
答案 1 :(得分:1)
我可以想到一些容易记住的模式:
1234321 (half reversed)
1234567 (in order)
1231231 (repeating)
7654321 (reverse order)
2468024 (even in order)
1357135 (odd in order)
1212121 (alternating)
显然你可以想到更多。有一个不同模式的库。从库中随机选择一个模式,然后在模式的约束内随机填充该模式。例如,您只能选择“按顺序”模式的起始数字,以下数字将取决于起始数字。