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

Posted latup

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

以上是关于9.1 从5随机到7随机及其扩展的主要内容,如果未能解决你的问题,请参考以下文章

Java算法 -- 选择排序冒泡排序插入排序前缀和数组Java中的Math.random()函数01不等概率随机到01等概率随机从[1,5]随机到[1,7]随机对数器的使用

Java算法 -- 选择排序冒泡排序插入排序前缀和数组Java中的Math.random()函数01不等概率随机到01等概率随机从[1,5]随机到[1,7]随机对数器的使用

Java算法 -- 选择排序冒泡排序插入排序前缀和数组Java中的Math.random()函数01不等概率随机到01等概率随机从[1,5]随机到[1,7]随机对数器的使用

Java算法 -- 选择排序冒泡排序插入排序前缀和数组Java中的Math.random()函数01不等概率随机到01等概率随机从[1,5]随机到[1,7]随机对数器的使用

使用概率分布扩展整数的随机范围

js 随机按机率取数