作者liaommx (Orz)
看板C_Sharp
标题Re: [问题] 乱数产生的方式..
时间Mon Mar 1 11:08:15 2010
最後我直接采用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
1F:推 whelp:超过十万笔资料可能还是要考虑一下搜寻法... 03/01 11:56
2F:→ liaommx:目前使用这方法,最慢大约5分钟可以完成..XD 03/01 12:23
3F:→ liaommx:归功於List.sort...:P 03/01 12:23
4F:推 F23ko:我写的那个,边产生边检查,只要八秒..... 03/01 12:39
5F:→ liaommx:我知道..XD..tree的方法对我来说我还要一点时间消化一下 03/01 12:41
6F:→ liaommx:所以我先写出个可以用的来用, 03/01 12:41
7F:推 F23ko:当初学tree时我也是一直按F11看了好几遍才懂 03/01 12:45
8F:→ F23ko:盲点在於.... 一直看同一段程式在跑,人会把它当成同一个 03/01 12:46
9F:→ F23ko:「东西」。事实上,把每个树节都当成是不同东西来看,就能搞 03/01 12:47
10F:→ F23ko:清楚那个概念了。 03/01 12:48
11F:→ liaommx:非常感谢您,我会找时间看懂他的, 03/01 14:38
12F:推 FAITHY:writetofile是什麽 纪录重复的乱数吗@@ 03/01 22:53
13F:→ FAITHY:那如果list[i]==list[i+1]==list[i+2]不是记录两次一样的吗 03/01 22:55
14F:→ FAITHY:还是你只要记录重复的个数和数次@@ 03/01 22:58
15F:→ liaommx:我是单纯想像,若重复的乱数最多只有两个 03/02 06:23
16F:→ liaommx:所以你提到的是对的,这段可以再修改.只是太急了XD 03/02 06:24
17F:→ liaommx:程式的主要目的不是产生乱数,而是假设我想的乱数产生方法 03/02 06:25
18F:→ liaommx:不容易产生重复.所以要验证 03/02 06:25