求解10000个随机数分成两组,使它们的和相等
求解10000个随机数分成两组,使它们的和相等,怎么编写程序import random
a = []
max = 10**8
for i in range(10000):
x = random.randint(0,max)
while x in a:
x = random.randint(0,max)
a.append(x)
我觉得理论上可能存在 ,实际上不存在这个问题的答案 全都是随机的话不太能保证存在解吧, 举极端情况来说可以随机出9999个极小值和1个极大值, 此时不存在任何可行解吧.
我可以交流一下我对这个问题的看法;
1.取10000个随机数的和的一半(若为偶数可能有解,奇数或者带小数无解)
2.从10000个数取5000个数全部排列组合,并且一 一验证
3.可能无解 也可能多解决
但这个算力我觉得要求不较大吧 padastar 发表于 2020-9-22 14:53
我觉得理论上可能存在 ,实际上不存在这个问题的答案
这个要看随机数是什么吧,还是有很大机会有解的 你这感觉是在做无用功啊。这种随机数很难保证你想要的要求的 c03xp 发表于 2020-9-22 15:02
这个要看随机数是什么吧,还是有很大机会有解的
所以我很严谨的说理论上可能存在解,但实际上,我个人觉得 暴力穷举不现实。期待有大神有好办法 题目换一下
10000个随机整数,分两组,和相等,几率多大? padastar 发表于 2020-9-22 15:06
所以我很严谨的说理论上可能存在解,但实际上,我个人觉得 暴力穷举不现实。期待有大神有好办法
看来只能穷举了,那要到猴年马月才能计算出来 sos218909 发表于 2020-9-22 15:13
题目换一下
10000个随机整数,分两组,和相等,几率多大?
感觉换了题目更难了