/**
* 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 {
/**
* rand7 = 1 ~ 7
* rand7 - 1 = 0 ~ 6
* (rand7 - 1) * 7 = 0, 7, 14, ..., 42
* (rand7 - 1) * 7 + (rand7 - 1) = 0 ~ 48
*
*
* rand10 = 1 ~ 10 = (0 ~ 9) + 1
* rand10 = (0 ~ 9) % 10 + 1 = (10 ~ 19) % 10 + 1 = (20 ~ 29) % 10 + 1 = (30 ~ 39) % 10 + 1
* @return
*/
private int tmp() {
while (true) {
int tmp = (rand7() - 1) * 7 + rand7() - 1;
if (tmp < 40) {
return tmp;
}
}
}
public int rand10() {
return tmp() % 10 + 1;
}
}
转载于:https://blog.51cto.com/tianyiya/2171972