看板 [ java ]
討論串[問題] 1-42取出6+1個數字
共 21 篇文章

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者Archer.時間19年前 (2006/07/23 17:01), 編輯資訊
0
0
0
內容預覽:
【 在 zanyking.bbs@ptt.cc (遙遠的旅人) 的大作中提到: 】. 我想這就是洗牌法的延伸吧. 像撲克牌洗牌一樣,假設n張牌一開始都照順序排好 (陣列初始為1~n). 洗一次牌就是任選兩張牌然後彼此交換位置 (陣列中任選2位置彼此Swap值). 要洗幾次就看你想要亂數有多亂,洗越多
(還有105個字)

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者zanyking (遙遠的旅人)時間19年前 (2006/07/22 10:14), 編輯資訊
0
0
0
內容預覽:
當然可以阿,這樣聰明多了。. 那個pseudo Code是Trace來的,我只是直接把腦子裡的東西貼上用,. 看來我還消化的不夠徹底,感謝指點。. 不會,第n-1個跟之前連自己共n個元素作Swap也有可能取到自己啊。. 所以雖然機率超低也還是有機會的。. --. JAVA 是一個靜態型別refere

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者superlubu (勁過呂布)時間19年前 (2006/07/22 08:15), 編輯資訊
0
0
0
內容預覽:
從你這一個方法,我倒想到了一個較另類的高效方法 :P. 假設陣列長度 n, 隨機取 m 個. int arr[] = new int[n];. for (int i = 0; i < n; i++) arr[i] = i; // initialize. int result[] = new int[
(還有248個字)

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者ogamenewbie (._.)時間19年前 (2006/07/22 07:41), 編輯資訊
0
0
0
內容預覽:
(舉手) 問幾個問題.... 這個看起來是從陣列最後方, 隨機選一個之前的元素跟後面的置換.. 然後把整個陣列 n 跑完之後, 取前面的 m 個.... 那為什麼不直接後面作 m 次以後直接取後面的 m 個呢?. 另外取前面 n 個, 第一個會永遠不可能是自己吧?. 最後感謝你提供 (對我來說) 如

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者zanyking (遙遠的旅人)時間19年前 (2006/07/22 01:40), 編輯資訊
0
0
0
內容預覽:
1-42 取 7用set 的 Contains判斷不取重複可能還好。. 1-20000 取 10000呢?你很快就會覺得是不是掉進無窮回圈當中了。. (如果你不幸用遞迴寫,哪很快就會stack Over Flow了。). 之前Trace JDK程式碼時有看到一個好方法給大家參考。. 原理如下:. 假
(還有157個字)