介绍
您将获得具有以下实现的随机整数生成器
- 第一次调用总是返回1。
- 第二次调用返回1到2之间的随机整数。
- 第三次调用返回1到3之间的随机整数。
- 第n次调用返回1到n之间(包括1和n)的随机整数。
根据上述函数,编写一个完全随机的随机骰子生成器,以相等的概率返回一个介于1到6(含)之间的值。
规则
- 您的程序/函数应以某种可用的形式(例如,到标准输出或作为函数返回值)得出1到6之间的一个随机整数(包括1和6)。
- 上面的升序随机数生成器可以定义为程序中的“自由”函数(即不计入字符数),也可以定义为根据需要执行的单独脚本/程序(假定状态(
n
)是持久性的)通话之间。 - 假设在您的程序的单个使用案例中,请求的掷骰子次数不会超过1000,并且可以将初始随机数生成器重置为
1
1000掷骰子,以避免溢出n
。 - 除了上面定义的升序随机生成器外,您的程序不得使用任何其他随机数源。您当然可以为每个骰子掷骰输出向随机数生成器请求多个随机数。
- 这是代码高尔夫球,因此如果出现平局,获胜者将是最短答案或最多选票。如果您可以使用少于1000个生成的随机数生成1000个骰子掷骰,请给自己10点效率奖励。
例
./asc-rand
1 # random integer between 1 and 1
./asc-rand
1 # random integer between 1 and 2
./asc-rand
3 # random integer between 1 and 3
./asc-rand
4 # random integer between 1 and 4
# dice-gen generates random dice based on output of asc-rand program.
./dice-gen
3
./dice-gen
6
./dice-gen
5
./dice-gen
1
iterate(6):b=asc-rand(); print b
非法或不起作用?我可能会误解第三条规则。