王志勇 发表于 2019年01月22日 07:48
我的回复在第60楼,这么好的算法居然没人点赞,唉……因为在很多程序项目里,比如现在开发中的Feedval,里面都会有大量这种数学算法,几乎每天都要去解决,只是像这样难度的算法会少一些,解这种题已经成为习惯,因为这是平时的工作必需的,否则无法完成任务。
昨天用了半个多小时,解决了这个算法,而且这个算法绝对不会出现负数,不会出错,能彻底解决问题,我的办法是这样的:
先获得所有的情形:0~100,共有101个数。
假设要求这10个数不重复,(先不考虑排列顺序,最后考虑排列顺序),这10个随机数共有:1+2+3+4+5+6+7+8+9+10+11=66种。(其实不需要统计有多少种)
编写一个循环程序,从0-100,列举出所有的10个不重复的数的组合、与和,循环次数为101*101(标记1)。
从这些组合中,让程序自动筛选出所有的和为100的(10个数的)组合。这样,就自动列举出这66种。这是让程序自动列举,每一种的值建立一个数组。
重要步骤:之后,从这10个组合,随机拿出一个组合。
重要步骤:再将这个拿到的组合,再进行随机排列大小。
如果要生成10个随机数的和为200、300,或者N个随机数的和为M,同理。
后来题主追加回复,他的要求是10个数可重复。可重复的算法,反而更复杂一些。在上述的“标记1”处这里,改变一下程序,让自动列举出的数字可重复。
置顶的文章:
论朋友圈可以发什么?
短信验证开发的方案分享
巡回更新:2018-09-21
速度是永恒的主题
UTF-8、HTTPS原来都是浮云
https安全吗?
独立博客有必要安装https吗?
近期的主题:
夜晚靓歌(10):你没看过的《星雨心愿》
Feedval、Blogval将下线/谈理财和生存
2024.9感言
人生讨论(20):有人借钱怎么办?(2)
人生讨论(19):迄今为止最强的情感频道
数码评测(67):让小米/红米手机的反应提高1~2倍
数码评测(66):无线网卡FW150UH VS FW150UH
数码评测(65):如何快速自制CPU天梯图?
数码评测(64):2024年,你还在用VGA线吗?
人生讨论(18):6年就可以实现财务自由
人生讨论(17):为什么总是受欺负?
人生讨论(16):要钱的最新妙招
创业杂谈(17):什么项目能赢利?
人生讨论(15):有人借钱怎么办?
数码评测(63):高清切换超级神器
数码评测(62):再谈视频的尺寸
数码评测(61):近期数码采购和折腾
人生讨论(14):看穿尊重
数码评测(60):图拉丁-最佳中配工作“免费”手机
创业杂谈(16):博客何时终结?
版权声明:本博客所有文章,均符合原创的定义,禁止转载,违者将必究;正确的方法是贴原文的标题和网址即可。
与此相关的链接
自由勇专栏
Blog存档 Archives
2022年07月
2022年06月(15)
2022年05月(20)
2022年04月(16)
2022年03月(9)
2022年02月(9)
2022年01月(10)
2021年 +