06 2012 档案
摘要:问题:从 1到n个数中随机选出m个不同的数。(编程珠玑12章)第一种算法,从r个剩余的整数中选出s个,以概率s/r选择下一个数1 initialize set S to empty2 Size:=03 while Size<m do4 T:=RandInt(1,N)5 if T is not in S then6 insert T in S7 Size:=Size+1这个算法有一个致命的缺陷是每新产生一个随机数都要判断其是否已经被集合S包含。通常情况下,如果不借用其它数据结构,就需要遍历整个集合S。最极端的情况是m=n且T:=Ran...
阅读全文