您有一个十亿的数字,实施getRandom(),这从他们返回一个随机数

可能重复:
算法来选择单一的价值,随意组合?

这是一个面试问题我已经在网上看到。

您有一个十亿的数字,实施getRandom(),这从他们返回一个随机数。

Constaints:1.无重复的返回值。 2. getRandom()将至多被调用了100万次。 然后,优化空间。

这怎么解决,什么是一些更好的?:

洗牌号数组。 保留一个计数器从0开始。每当用户调用getRandom,在柜台指数返回值。 增加计数器。

--------------解决方案-------------

让我们假设你有一个返回随机函数10的概率相等。 可以调用此函数32倍得到之间的随机数02^(32)-1 。 可以调用此函数64倍得到之间的随机数02^(64)-1

分类:算法 时间:2015-03-15 人气:4
本文关键词: 算法
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.277 (s). 10 q(s)