leetcode470——用 Rand7() 实现 Rand10()
Posted dtwd886
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode470——用 Rand7() 实现 Rand10()相关的知识,希望对你有一定的参考价值。
题目链接:
https://leetcode-cn.com/problems/implement-rand10-using-rand7/
思路:
首先利用(rand7()-1)*7 随机生成等间隔的数据0,7,14,21,28,35,42
然后利用rand7()在生成数据将数据插入到第一步生成的数据中,保证随机性。
从而得到1,2,3,...,49
对于大于40的数据重新生成,而对于小于的数据对十取模加一,这样保证了1-40之间数据的概率是完全相同的。
// The rand7() API is already defined for you.
// int rand7();
// @return a random integer in the range 1 to 7
class Solution
public:
int rand10()
int num;
do
num=rand7()+7*(rand7()-1);
while(num>40);
return num%10+1;
;
以上是关于leetcode470——用 Rand7() 实现 Rand10()的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode No.470 用 Rand7() 实现 Rand10()
Leetcode No.470 用 Rand7() 实现 Rand10()
LeetCode 470 用Rand7()实现Rand10()[数学] HERODING的LeetCode之路
精选力扣500题 第34题 LeetCode 470. 用 Rand7() 实现 Rand10()c++ / java 详细题解
LeetCode 面试题 17.14. 最小K个数(堆排,快排)/剑指 Offer 10- I. 斐波那契数列 /470. 用 Rand7() 实现 Rand10()(拒绝采样,学!!!)