[100分]讨论个简单的好算法。★2天后结帖★

1423567 2004-09-02 08:02:37
问题很简单。一个小算法问题,只想看看有什么好的算法没有。
随即产生5个随即数相加等于100 大家各述己见吧! 看看有什么新鲜的算法!大家说说思路也可以,看看谁说的算法最简便,有高速,有新意,高效率。 (PS:小题大作了) 我个人认为吧,首先我是个菜鸟,刚学这些东西不久,不过我觉得日后写大型程序过程中,每一小步都是关键的。所以现在想走好这一小步,
讨论者有分 2天后结帖。

----
本人号称CSDN结帖高手,有帖必结!
...全文
799 64 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
64 条回复
切换为时间正序
请发表友善的回复…
发表回复
xieyangf 2004-09-03
  • 打赏
  • 举报
回复
我认为 goodboy1881(三井)(为了更好的BS JAVA而学习JAVA中)的算法可以.
sred 2004-09-03
  • 打赏
  • 举报
回复
大家都是高手,呵呵,学习ing
liu_feng_fly 2004-09-03
  • 打赏
  • 举报
回复
又想了一下,觉得随机分段的思路不错:)
cchuocp 2004-09-03
  • 打赏
  • 举报
回复
题目的要求并没有要求后面的数与前面的数相关,相关是特定算法产生的,并不是题目的要求,而且与题目相悖。所以不存在条件概率的问题。应该将5个数看成是一个整体,各自出现概率随机,而不是每个数出现随机。事实上算法3也不能保证0到100这101个数的出现概率相同,直观看上去,0的出现概率要接近101的出现概率的10倍。
积木 2004-09-03
  • 打赏
  • 举报
回复
我想大家都学过条件概率,条件概率上面告诉我们关联的事件中的概率也应该是关联的。
那么我取出第一个数,那么第二个数的生成概率就一定和第一个数有关,所谓的均匀是什么意思?如果这五个数生成的条件是一样的我说他们的生成概率可以是均匀的,但是现在每个数的生成概率本来就不一样,生成第一个数以后,我下面的数就只能在一个范围内生成不是吗?怎么可能还是均匀的呢~
liumangpp 2004-09-03
  • 打赏
  • 举报
回复
既然是随机数,那就不能加那个和是100的条件啊

robertcarlos 2004-09-03
  • 打赏
  • 举报
回复
个人意见:
既然是整数,那应该有正整数和负整数,那,是不是应该考虑的范围更广点?或者是无法考虑?

呵呵~纯属扯淡的
zqpsswh 2004-09-03
  • 打赏
  • 举报
回复
从概率上看cchuocp(井底之蛙)的算法有点不妥当

因为出现50以上的数概率有一半

而纯粹随机的话不可能如此
hewittlee 2004-09-03
  • 打赏
  • 举报
回复
good
wwwooowww 2004-09-03
  • 打赏
  • 举报
回复
厉害了。
Mdeathys 2004-09-03
  • 打赏
  • 举报
回复
随机数不可以是负数吗?
jasonbiao 2004-09-03
  • 打赏
  • 举报
回复
支持条件概率的
题目要求5个数的和为100,就已经决定各个数出现的概率是不一样的
比如0~19各个数最多可以出现4次,20最多可以出现5次
……
51~100则只能出现一次
这些都是由“5个数的和为100”的条件而约束的
steveyzhang 2004-09-03
  • 打赏
  • 举报
回复
就题目本身来说,cchuocp(井底之蛙)的算法绝对的匹配了题目的条件(5个数都是随机产生的,且都在0-100之间),那么着本身就是一个小概率事件,题目的解的算法也就不是“匹配”5个数,使5个数加起来等于100。这样本身5个数就已经存在相关性了。
而符合题意的算法的本质是,随机的产生5个数,检查他们之和是否等于100.(这个事件发生的概率是:0.0004598126,所以是小概率事件了),题目本身并没有多大的意义。不过cchuocp(井底之蛙)的递归算法,和楼上几位朋友的分段思路让小弟受益,谢谢你们!

empire_ghost 2004-09-03
  • 打赏
  • 举报
回复
井地之蛙的思路最符合出题人的意愿
eyun 2004-09-02
  • 打赏
  • 举报
回复
同意goodboy1881(三井)
liu_feng_fly 2004-09-02
  • 打赏
  • 举报
回复
to 楼上:那么你认为组合(100,0,0,0,0)的概率是多少呢?
cchuocp 2004-09-02
  • 打赏
  • 举报
回复
举个简单的例子,3楼的算法产生组合(100,0,0,0,0)的概率是1/101,因为在第一步只有101中可能。但显然组合(100,0,0,0,0)的概率不可能是1/101。
loveliu0429 2004-09-02
  • 打赏
  • 举报
回复
goodboy1881(三井)(为了更好的BS JAVA而学习JAVA中)
的就很不错啊
cchuocp 2004-09-02
  • 打赏
  • 举报
回复
随机就是要求前后无关,根据前面的数产生后面的数,怎么可能最随机呢!
还是我的算法正确,虽然需要特别处理舍入问题!
不信的话可以搂主可以写个程序模拟一下。
goodluckyxl 2004-09-02
  • 打赏
  • 举报
回复
nicknide(封月翔天) ( ) 信誉:100
对于 弥勒佛 的程序你没有判断大小应该先排序
你后面的还是最后一个基于前四个数产生--已经不是随即的概念

milefo(弥勒佛) ( ) 信誉:
比较合理
加载更多回复(44)

33,321

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧