Re: [問題] 亂數產生的方式..

看板C_Sharp作者 (Orz)時間14年前 (2010/03/01 11:08), 編輯推噓4(4014)
留言18則, 4人參與, 最新討論串3/4 (看更多)
最後我直接採用List的比對方法. 先把產生的序列存入List, 然後對List排序, (list.sort) 然後跑 for(i=0;i<List.count-1;i++) { if( List[m]==List[m++]) { writetofile(List[m]); } } 這樣, 比起I/O讀取快上很多, 我想我的問題是在於,100萬筆資料,I/O要跑100萬*100萬 而這個方法只需要比對100萬次就好. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.169.226.154

03/01 11:56, , 1F
超過十萬筆資料可能還是要考慮一下搜尋法...
03/01 11:56, 1F

03/01 12:23, , 2F
目前使用這方法,最慢大約5分鐘可以完成..XD
03/01 12:23, 2F

03/01 12:23, , 3F
歸功於List.sort...:P
03/01 12:23, 3F

03/01 12:39, , 4F
我寫的那個,邊產生邊檢查,只要八秒.....
03/01 12:39, 4F

03/01 12:41, , 5F
我知道..XD..tree的方法對我來說我還要一點時間消化一下
03/01 12:41, 5F

03/01 12:41, , 6F
所以我先寫出個可以用的來用,
03/01 12:41, 6F

03/01 12:45, , 7F
當初學tree時我也是一直按F11看了好幾遍才懂
03/01 12:45, 7F

03/01 12:46, , 8F
盲點在於.... 一直看同一段程式在跑,人會把它當成同一個
03/01 12:46, 8F

03/01 12:47, , 9F
「東西」。事實上,把每個樹節都當成是不同東西來看,就能搞
03/01 12:47, 9F

03/01 12:48, , 10F
清楚那個概念了。
03/01 12:48, 10F

03/01 14:38, , 11F
非常感謝您,我會找時間看懂他的,
03/01 14:38, 11F

03/01 22:53, , 12F
writetofile是什麼 紀錄重複的亂數嗎@@
03/01 22:53, 12F

03/01 22:55, , 13F
那如果list[i]==list[i+1]==list[i+2]不是記錄兩次一樣的嗎
03/01 22:55, 13F

03/01 22:58, , 14F
還是你只要記錄重複的個數和數次@@
03/01 22:58, 14F

03/02 06:23, , 15F
我是單純想像,若重複的亂數最多只有兩個
03/02 06:23, 15F

03/02 06:24, , 16F
所以你提到的是對的,這段可以再修改.只是太急了XD
03/02 06:24, 16F

03/02 06:25, , 17F
程式的主要目的不是產生亂數,而是假設我想的亂數產生方法
03/02 06:25, 17F

03/02 06:25, , 18F
不容易產生重複.所以要驗證
03/02 06:25, 18F
文章代碼(AID): #1BYo-XfS (C_Sharp)
文章代碼(AID): #1BYo-XfS (C_Sharp)