首页 新闻 会员 周边 捐助

如何在列表0,1,2位置上产生随机数,三数之和等于100。3,4,5位置之和等于200

0
[已解决问题] 解决于 2018-05-24 17:00
复制代码
a = [1, 2, 3, 4, 5, 6]

 

 

 

0的取值范围是(0,50)

1的取值范围是(0,40)

2的取值范围是(0,30)

范围内产生随机数相加等于100

问题补充:

0的取值范围是(0,80)

1的取值范围是(0,60)

2的取值范围是(0,30)

范围内产生随机数相加等于100

蜗牛bt的主页 蜗牛bt | 菜鸟二级 | 园豆:206
提问于:2018-05-17 22:29
< >
分享
最佳答案
1

刚开始想的是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)
奖励园豆:5
火山冰封 | 菜鸟二级 |园豆:209 | 2018-05-21 18:02

谢谢你。

蜗牛bt | 园豆:206 (菜鸟二级) | 2018-05-24 16:59

@蜗牛bt: 不可以,我也是菜鸟,平时可以多交流

火山冰封 | 园豆:209 (菜鸟二级) | 2018-05-24 17:35
其他回答(3)
0

这是脑筋急转弯题目么?

sum(0,1,2)=100,当然是随机两个数,第三个数=100-前两个数了。

3、4、5类推。

爱编程的大叔 | 园豆:30844 (高人七级) | 2018-05-18 09:15

不好意思,题目没写清除,还有一个条件是

0的取值范围是(0,80)

1的取值范围是(0,60)

2的取值范围是(0,30)

范围内产生随机数相加等于100

支持(0) 反对(0) 蜗牛bt | 园豆:206 (菜鸟二级) | 2018-05-18 09:27

@蜗牛bt: 估计等我回答完,你又得加一个条件了,所以我决定不回答了。你自己想吧。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30844 (高人七级) | 2018-05-18 10:02

@爱编程的大叔: 好的,谢谢你,麻烦你了。

支持(0) 反对(0) 蜗牛bt | 园豆:206 (菜鸟二级) | 2018-05-18 10:10
0

你得从后往前取,先取(0,30)的,再取(0,60)的,最后再100-,而且你第二个取完值需要判断是否合适,不合适的话还得重新取值,

一、2---》取值(0,30)

二、1---》取值(0,60)

三、判断2+1是否小于20,则返回第二步、大于20

四、100-前两步取的值得到第三个值

 

 

或者最笨的方法,一个循环,取三个范围内的随机数,相加等于100输出三个随机数退出循环,这种方法不建议采用,

软件杨威 | 园豆:26 (初学一级) | 2018-05-18 11:26
0

先随机0位置上的数,r(a,80),a=100-60-30=10,假如得到的数字是11.

然后随机1位置上的数,r(b,60),b=89-30=59.假如得到的数字是59.

计算第2位置上的数字,100-11-59=30

贪心狸猫 | 园豆:872 (小虾三级) | 2018-05-18 17:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册