一:解题思路
如果x>y,那么一定可以用randx去实现randy。其中,randx表示等概率的生成1到x的函数。randy表示等概率的生成1到y的函数。
二:完整代码示例 (C++版和Java版)
C++:
class Solution { public: int rand10() { int x = 2147483647; while (x > 10) x = 7 * (rand7() - 1) + rand7(); return x; } };
Java:
class Solution extends SolBase { public int rand10() { int x=Integer.MAX_VALUE; while (x>10) x=7*(rand7()-1)+rand7(); return x; } }