打印

提交一道关于生成随机数的题目

提交一道关于生成随机数的题目

输入:m, k (k,m都是整数,且 k ≦ m)
输出:一个数组,包含 k 个不重复的随机整数,每个随机整数 x 都满足 0 ≦ x ≦ m, 同时 x 的输出顺序也是随机的。

测试用例:

  10.times do
    puts get_rand_num(10, 6)
  end


输出例:

[1, 2, 6, 9, 5, 7, 8]
[3, 0, 5, 10, 1, 6, 9]
[0, 2, 8, 9, 3, 7, 6]
[9, 5, 2, 4, 6, 1, 3]
[9, 1, 10, 6, 2, 7, 4]
[5, 9, 10, 8, 1, 7, 4]
[0, 3, 6, 8, 7, 9, 1]
[10, 3, 8, 5, 2, 4, 1]
[0, 2, 10, 7, 6, 8, 4]
[7, 1, 5, 6, 4, 0, 8]

[ 本帖最后由 bbschat 于 2008-4-1 20:50 编辑 ]
本帖最近评分记录
  • jmouse R币 +10 采纳 2008-4-1 23:52
  • wscc111 R币 +5 高手啊!逻辑强 2008-4-1 17:31

TOP

随机整数没有范围么?
输出例里面都是小于等于m的?

[ 本帖最后由 xavier 于 2008-4-1 19:24 编辑 ]

TOP

2楼理解的没错,随机整数范围就是 ≧ 0 且 ≦ m
已经略微修改了下顶楼的题目解释。

TOP

对于随机数,我有很多话要说。
最早玩的机器是APPLE II,在那上面学了logo,后来学了BASIC。
记得学BASIC期间,写了一个和简单的计算机出四则运算题的程序,用了RND函数。
后来发现我的程序怎么每次运行都给出一样的题目,随后知道了随机函数种子的说法。

后来在GB模式(苹果机上的低分辨率图形模式,我记得好象是叫GB)下,写了个程序,随机点亮一个屏幕点。不巧的是,所有的随机点都没有重复,最后恰好把整个屏幕点亮。于是自己写了个很得意的清屏效果。但是那时候就非常搞不清了,随机,概率,必然之间的关系。
我要在1到10里取10个数,什么叫随机?完全按照概率来,那第10个数就是必然的。
后来又学了更多,知道了概率得首先看样本。好比从概率上来说,投一枚硬币,其正反2面出现的几率是定比的(不一定是50%),但是连续仍10个正面也是可以的。
这个题目要求产生随机数,从目前的测试用例来看,是不相同的随机数。
我不知道是不是可以写出这样一个个函数,在小样本时可能产生相同的数,但是在足够大的样本数据时能保证分布是均匀的。
越想越乱。

TOP

2008-11-23 23:29 Crawled by CCBot/1.0 (+http://www.commoncrawl.org/bot.html) @38.103.63.61