a = [1, 2, 3, 4, 5, 6]
0的取值范围是(0,80)
1的取值范围是(0,60)
2的取值范围是(0,30)
范围内产生随机数相加等于100
刚开始想的是random.randint(),选取三个数再判断是否等于100,
后来运行了一下,发现运行不出来结果,因为每次选取的都是随机的。
建议你用循环做,没一位数都从0开始循环,把每种情况都进行判定。
for x in range(0,80): for y in range(0,60): for z in range(0,30): if x + y+ z == 100: print(x,y,z)
谢谢你。
@蜗牛bt: 不可以,我也是菜鸟,平时可以多交流
这是脑筋急转弯题目么?
sum(0,1,2)=100,当然是随机两个数,第三个数=100-前两个数了。
3、4、5类推。
不好意思,题目没写清除,还有一个条件是
0的取值范围是(0,80)
1的取值范围是(0,60)
2的取值范围是(0,30)
范围内产生随机数相加等于100
@蜗牛bt: 估计等我回答完,你又得加一个条件了,所以我决定不回答了。你自己想吧。
@爱编程的大叔: 好的,谢谢你,麻烦你了。
你得从后往前取,先取(0,30)的,再取(0,60)的,最后再100-,而且你第二个取完值需要判断是否合适,不合适的话还得重新取值,
一、2---》取值(0,30)
二、1---》取值(0,60)
三、判断2+1是否小于20,则返回第二步、大于20
四、100-前两步取的值得到第三个值
或者最笨的方法,一个循环,取三个范围内的随机数,相加等于100输出三个随机数退出循环,这种方法不建议采用,
先随机0位置上的数,r(a,80),a=100-60-30=10,假如得到的数字是11.
然后随机1位置上的数,r(b,60),b=89-30=59.假如得到的数字是59.
计算第2位置上的数字,100-11-59=30