本文主要是介绍Implement Rand10() Using Rand7(),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Given a function rand7
which generates a uniform random integer in the range 1 to 7, write a function rand10
which generates a uniform random integer in the range 1 to 10.
Do NOT use system's Math.random()
.
Example 1:
Input: 1 Output: [7]
思路:数学题,1~7 可以转换成 0 ~ 48 ,然后0~40 可以取模10,得到0~9+1 得到1~10;
取到灰色的格子,就不要了,取前40个,因为前面40个的出现的次数都是4次,是相等的;
/*** The rand7() API is already defined in the parent class SolBase.* public int rand7();* @return a random integer in the range 1 to 7*/
class Solution extends SolBase {public int rand10() {int rand40 = Integer.MAX_VALUE;while(rand40 >= 40) {rand40 = (rand7() - 1) * 7 + (rand7() - 1);}return rand40 % 10 + 1;}
}
这篇关于Implement Rand10() Using Rand7()的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!