【发布时间】:2020-10-14 16:28:30
【问题描述】:
我想创建随机 20 个 15 位数字的列表,每个 15 位数字必须遵循 1 条规则。
规则是我希望这个 15 位数字由 5 个 3 位数字组成,其中 第一个数字 + 第二个数字 = 第三个数字 或者如果前两个数字的总和更大大于 10 则 第三位必须为,等于前两位数字之和的 第二位。 例如,如果第一位为 5,第二位为 8,则第三位必须为 3因为 5 + 8 = 13。
我编写的代码使用相同的规则用 15 位数字填充列表,但它只适用于前三位。
import random as rd
def numchoose(start, end):
arr=[]
num=0
while num<20:
a=(rd.randint(start, end))
if int(str(a)[0]) + int(str(a)[1]) == int(str(a)[2]):
arr.append(a)
num+=1
elif int(str(a)[0]) + int(str(a)[1]) > 10 and int(str(a)[2]) == int(str(int(str(a)[0]) +
int(str(a)[1]))[1]) :
arr.append(a)
num+=1
else: continue
print(numchoose(100000000000000, 999999999999999))
如何编写此代码,以使整个 15 位数字由遵循规定规则的 3 位数字组成,并且前三位数字不是唯一遵循规则的数字?
【问题讨论】:
-
更多地使用字符串。创建一个函数,根据转换为字符串的规则返回 3 位数字。调用这些函数 5 次,连接字符串,最后将其转换为 int。
-
这对我来说似乎不是很随机。您也许可以列出所有符合规则的 3 位数组合,并使用
random.choice从中挑选。
标签: python list random numbers