由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 谁还记得这道面试题吗?
相关主题
问一个面试题大家看一下这道google面试题
一个面试题,不会做,大家看看怎么做这道面试题?
问个微软面试题问一个狗狗的OnSite题
how to shuffle a deck of cards?今天的G电面面经
请教个弱题:random generator: from 1~5 to 1~7Amazon 面试题
G家onsite 随机数一题一个经典的随机数的问题。求教。
微软一个面试题晒一道有意思的面试题
一道面试题merge k个数组怎样的方法好?
相关话题的讨论汇总
话题: rand话题: array话题: except话题: given话题: random
进入JobHunting版参与讨论
1 (共1页)
M*********n
发帖数: 4839
1
板上兄弟贴出来过,大概是这样的,
用一个随机数generateor产生另一个随机数,基本思想是reject sampling, 但reject
的概率太大,要找更有效的方法。
e***s
发帖数: 799
2
把能accept的数放到一个数组里面,random这个数组的index。
M*********n
发帖数: 4839
3
有链接吗?就是前几天的帖子。

【在 e***s 的大作中提到】
: 把能accept的数放到一个数组里面,random这个数组的index。
e***s
发帖数: 799
4
忘了,但是我自己reword了一下写到笔记里了
Given Rand(int n), return a random number from 0 ~ n
Now design a Rand(int n, int[] except) which output number should not in
except array
C***U
发帖数: 2406
5
假设except有k个数
那么就是把0~n - except影射到0~(n-k)
中间只要用到binary search 所以应该时间上还算可以把?

【在 e***s 的大作中提到】
: 忘了,但是我自己reword了一下写到笔记里了
: Given Rand(int n), return a random number from 0 ~ n
: Now design a Rand(int n, int[] except) which output number should not in
: except array

M*********n
发帖数: 4839
6
对,就是这个,问题是except太大了怎么办?比如n是1000,excep里面有980个数。

【在 e***s 的大作中提到】
: 忘了,但是我自己reword了一下写到笔记里了
: Given Rand(int n), return a random number from 0 ~ n
: Now design a Rand(int n, int[] except) which output number should not in
: except array

e***s
发帖数: 799
7
我不是很懂你的方法,binary search用在哪里?
我的方法是,
Sort except array O(nlogn)
create new 0 ~ (n-k) array O(n)
Get random number in new array O(1)
整个算法 O(nlogn)

【在 C***U 的大作中提到】
: 假设except有k个数
: 那么就是把0~n - except影射到0~(n-k)
: 中间只要用到binary search 所以应该时间上还算可以把?

h****n
发帖数: 1093
8
how can you get random number from the new created array with size n-k given
the n size random generator?
I don't think n mod n-k will give you uniform distribution.

我不是很懂你的方法,binary search用在哪里?我的方法是,Sort except array O(
nlogn)create new 0 ~ (n-k) array O........
★ Sent from iPhone App: iReader Mitbbs Lite 7.56

【在 e***s 的大作中提到】
: 我不是很懂你的方法,binary search用在哪里?
: 我的方法是,
: Sort except array O(nlogn)
: create new 0 ~ (n-k) array O(n)
: Get random number in new array O(1)
: 整个算法 O(nlogn)

e***s
发帖数: 799
9
newArray[Rand(n-k)]

given

【在 h****n 的大作中提到】
: how can you get random number from the new created array with size n-k given
: the n size random generator?
: I don't think n mod n-k will give you uniform distribution.
:
: 我不是很懂你的方法,binary search用在哪里?我的方法是,Sort except array O(
: nlogn)create new 0 ~ (n-k) array O........
: ★ Sent from iPhone App: iReader Mitbbs Lite 7.56

h****n
发帖数: 1093
10
you are not given the rand(n-k) that is my question . Rand(n)mod n-k will
not work since the resulted distribution is not uniform

newArray[Rand(n-k)]
★ Sent from iPhone App: iReader Mitbbs Lite 7.56

【在 e***s 的大作中提到】
: newArray[Rand(n-k)]
:
: given

e***s
发帖数: 799
11
他给Rand(n),n 不是应该随你输入什么吗?不是规定了一定要input的那个n啊!

【在 h****n 的大作中提到】
: you are not given the rand(n-k) that is my question . Rand(n)mod n-k will
: not work since the resulted distribution is not uniform
:
: newArray[Rand(n-k)]
: ★ Sent from iPhone App: iReader Mitbbs Lite 7.56

h****n
发帖数: 1093
12
酱紫。。。Got it,不过你这方法需要额外空间啊
如果要求不使用额外空间怎么搞
h****n
发帖数: 2094
13
先选range再在range里面选。

reject

【在 M*********n 的大作中提到】
: 板上兄弟贴出来过,大概是这样的,
: 用一个随机数generateor产生另一个随机数,基本思想是reject sampling, 但reject
: 的概率太大,要找更有效的方法。

1 (共1页)
进入JobHunting版参与讨论
相关主题
merge k个数组怎样的方法好?请教个弱题:random generator: from 1~5 to 1~7
divide array into two, sum of difference is min in O(N)G家onsite 随机数一题
问一下shuffle card问题微软一个面试题
问个面试题一道面试题
问一个面试题大家看一下这道google面试题
一个面试题,不会做,大家看看怎么做这道面试题?
问个微软面试题问一个狗狗的OnSite题
how to shuffle a deck of cards?今天的G电面面经
相关话题的讨论汇总
话题: rand话题: array话题: except话题: given话题: random