9.1 从5随机到7随机及其扩展

题目】:

  1~5的随机函数rand1To5如下:

1 pu7blic int rand1To5(){
2     return (int) (Math.random() * 5) + 1;
3 }

  除此之外,不能使用任何额外的随机机制,请用rand1To5实现等概率随机产生1~7的随机函数rand1To7

补充题目】:

  给定一个以p概率产生0, 以1-p概率产生1的随机函数rand01p如下:

1 public int rand01p(){
2     // 可随意改变p
3     double p = 0.83;
4     return Math.random() < p ? 0 : 1;
5 }

  除此之外,不能使用任何额外的随机机制,请用rand01p实现等概率随机产生1~6的随机函数rand1To6

进阶题目】:

  给定一个等概率随机产生1~M的随机函数rand1ToM如下:

1 public int rand1ToM(int m){
2     return (int) (Math.random() * m) + 1;
3 }

  除此之外,不能使用任何额外的随机机制。有两个输入参数,分别为m和n,请用rand1ToM(m)实现等概率随机产生1~n的随机函数rand1ToN

扫描二维码关注公众号,回复: 3940274 查看本文章

猜你喜欢

转载自www.cnblogs.com/latup/p/9908315.html
9.1