举个例子:
随机数字范围:0~100
每组数字量:6(s1,s2,s3,s4,s5,s6)
第二轮开始随机数字范围:新s1和新s2取值为旧s1和s2之间,新s3和新s4取值为旧s3和s4之间,新s5和新s6取值为旧s5和s6之间。
跳出循环条件:任意数字=37
如因s1=s2!=37&s3=s4!=37&s5=s6!=37使数组进入无意义无限循环,则重新取0~100六个数字并开始如上述第二轮随机的随机取值。
如果题目哪里没看懂请告诉我,答案以代码形式发送。谢谢!
举个例子:
随机数字范围:0~100
每组数字量:6(s1,s2,s3,s4,s5,s6)
第二轮开始随机数字范围:新s1和新s2取值为旧s1和s2之间,新s3和新s4取值为旧s3和s4之间,新s5和新s6取值为旧s5和s6之间。
跳出循环条件:任意数字=37
如因s1=s2!=37&s3=s4!=37&s5=s6!=37使数组进入无意义无限循环,则重新取0~100六个数字并开始如上述第二轮随机的随机取值。
如果题目哪里没看懂请告诉我,答案以代码形式发送。谢谢!
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import random
def random_test():
# 初始化一个列表,随机0-100的6个数字
rst_list = [random.randint(0,100) for i in range(0, 6)]
print(rst_list)
while 1:
# 新建临时数据,用来存储rst_list按规则处理后的数据
temp = []
for k,v in enumerate(rst_list):
if k%2==0:
temp.append(random.randint(min([rst_list[k],rst_list[k+1]]),max([rst_list[k],rst_list[k+1]])))
else:
temp.append(random.randint(min(rst_list[k-1], rst_list[k]),max(rst_list[k-1], rst_list[k])))
# 将结果temp列表,写入结果列表 rst_list
rst_list = temp
print(rst_list)
# 判断37在结果列表中,则返回结果列表 rst_list
if 37 in rst_list:
print('rst_list:',rst_list)
return rst_list
else:
# 37没在列表中,则按要求判断死循环情况(需求里的 s1=s2!=37&s3=s4!=37&s5=s6!=37 )
# 如果进入死循环,则重新初始化结果列表 rst_list
if rst_list[0]==rst_list[1] and rst_list[2]==rst_list[3] and rst_list[4]==rst_list[5]:
rst_list = [random.randint(0, 100) for i in range(0, 6)]
def main():
random_test()
if __name__ == '__main__':
main()
根据需求描述,按照最简单和容易理解的方式,逐步实现需求。注释和打印较多,实际代码篇幅并不多