精华帖 (0) :: 良好帖 (0) :: 新手帖 (3) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-01-15
public static void runRandom() { for (int i = 0; i < N*TIMES; i++) ary[new Random(System.currentTimeMillis()).nextInt(N)]++; } 然后改成带种子的。 |
|
返回顶楼 | |
发表时间:2011-01-15
used time is :21027 ms
67910 98825 113796 127631 74529 90191 100728 131166 89878 71040 102372 130132 107452 79899 75385 93689 124473 105982 75493 101298 129284 105175 76451 86006 107909 130850 94278 84442 101547 120161 94111 72215 96818 121140 111153 84239 78727 96048 129687 101892 67015 99389 129676 99858 65039 83208 109380 137816 99014 79456 101603 132725 106787 69351 98210 133018 117557 94747 82339 99140 136194 106036 64146 109778 135577 103561 77713 87718 105797 144885 96623 65399 102225 178186 108318 59819 93969 130018 100196 90149 84857 104450 126397 99753 63859 101763 128660 101593 81040 88771 114410 127472 97236 77095 90174 136468 106432 63475 92435 134363 118343 80375 79508 99847 132509 104714 59718 106423 134126 101664 71288 84939 98025 133393 74185 71413 98317 135093 106103 65858 93123 117948 116394 82904 87151 96174 137638 99904 75316 95387 132413 94728 77556 80083 103460 146900 84591 74088 95167 123199 97837 86622 90986 107413 123494 90281 77401 90484 124692 105177 73176 97152 124478 107862 81622 87089 98754 140767 87609 80145 97246 120375 109400 71496 88788 120028 124404 85013 75068 83164 129756 104047 60235 95829 126414 111917 92985 93710 93651 146081 87529 76289 100265 128034 112876 80556 84584 108459 122157 83260 72842 87917 135479 123220 63148 91035 116248 113367 82780 88889 93094 120982 86836 76388 90199 134828 88765 76456 93278 94976 120790 87879 69678 94006 131960 105382 52589 83308 131639 110451 84566 93503 101189 145692 103921 51678 103941 118885 106608 72131 95636 105962 126772 81365 82689 88662 124000 114532 62142 84731 111854 108536 82156 91404 97433 133387 90743 65732 80821 117912 109081 82523 85329 109985 126345 90985 79002 97192 120036 99329 66234 96965 120156 109516 99348 90033 93058 141938 95640 73017 93077 122254 114803 91387 92164 101080 135081 96207 78226 100296 128413 109544 76648 91117 121232 116506 97614 84130 97540 136934 98415 59172 94313 120227 118980 84318 87281 97701 126603 97119 65312 103809 124438 115648 72888 83979 128618 110466 92923 88479 102360 137581 112385 60901 90921 116415 118323 91151 86903 150982 127525 96410 76265 98015 127186 116295 77382 86699 112623 111999 87089 86112 103877 130354 116940 57767 93543 123504 108830 84059 90303 106995 119905 97775 74346 104299 137467 118280 59822 93123 112502 125507 89252 80907 98048 142937 96637 55084 93391 121790 110396 76974 85235 96445 132303 89986 70464 103283 123911 106724 81922 95610 109479 118688 85793 78549 107587 111274 102077 62015 96301 112361 109775 86534 88762 96413 131325 85572 65714 96286 126613 109631 87911 92518 101827 133424 102369 80003 105118 129332 104205 74593 101256 112569 118753 87702 81882 100420 124024 87596 73170 83628 136531 103207 70537 79412 94327 128904 88452 76069 104356 122131 107753 72738 95401 125807 120398 94627 71872 91545 130240 102723 58635 99930 138288 108779 85627 80521 94474 129789 104897 67472 101575 122312 102676 55677 92754 113529 124930 94569 86130 99331 124762 92634 66000 91930 126386 107797 84130 91338 103259 122673 96375 66905 111485 127216 101505 60567 92123 121362 126743 91118 88789 99948 131372 108897 46408 91529 139823 109017 78779 96278 101027 129541 95177 71050 105131 130176 93058 66965 91374 105995 121965 80269 83746 98036 130626 92310 61752 104181 122430 103695 70433 82555 99307 129474 102576 76977 101151 134603 92007 70184 92000 101283 127764 98018 87616 100274 136981 104641 74638 102284 121684 111749 88739 86764 94381 130910 100816 72611 101924 122696 98979 77350 91054 100957 134586 88938 77573 91029 133364 108442 67571 92769 111934 109890 82655 84468 92114 136219 111561 66947 96992 129934 99717 81619 91076 93104 134950 88773 73865 85974 130048 111427 67465 91472 130337 106692 81197 90125 89973 126317 105954 66902 104589 128109 98255 82520 88682 111720 132015 88238 73809 91438 116056 104480 67691 93419 122507 115246 90549 82026 86736 127624 104399 61751 95207 132237 104291 80623 82892 106458 128622 89818 68689 90170 136227 97488 69664 98400 117383 113573 79255 75638 91143 130440 96320 61825 97482 119918 102557 79107 88604 102260 136683 95876 78363 93691 124916 105164 70669 82818 122815 115616 86103 86460 100981 140022 102840 76899 97329 127324 105518 79589 83868 94969 146088 95285 72544 97613 134345 105532 83228 90865 115093 122143 94714 83723 93267 128997 99931 66111 93112 128476 111540 87878 89176 96932 149138 86273 67282 96423 115623 111419 81336 79122 114264 123136 100678 71069 96731 136939 112798 67593 98704 128074 110252 88564 87353 92084 148058 99152 76005 93746 131177 103284 83919 95763 97380 122061 97678 71915 87842 131616 111729 66220 95083 126898 115565 89489 82974 100714 145007 103008 64228 103692 123249 104984 74657 93669 109544 134311 91962 78235 98542 134740 123902 52750 94041 118064 108170 75448 90046 97400 145738 89133 72420 95357 114360 107640 75433 92481 114090 127868 88667 80929 95010 115177 114816 68053 87065 115154 108549 81538 95740 94554 138496 102836 72906 87977 115945 105689 74564 96659 100308 138807 97389 84052 88588 124786 114092 70008 88609 115314 117373 93201 87625 92384 144873 94458 76016 86731 122578 115877 87375 92415 91796 133204 83503 79506 96822 124229 107542 70353 89042 108503 123546 99617 85401 91882 140211 106231 72630 91152 114350 108604 95325 91052 100401 131265 92639 64627 102798 157379 102637 65597 94090 107281 102897 92701 78146 100087 128985 104872 69983 83689 127580 100497 94537 91865 109681 126700 89434 73414 99438 129705 115063 66281 84238 114614 113799 90493 87219 97797 140124 112707 59564 86992 129830 111538 68890 88430 105151 138429 99774 71759 99285 141596 99950 71523 88667 104786 125737 89704 84982 95290 126625 96142 55033 101083 122666 110688 92108 97769 102711 126612 86724 71105 105982 135430 94857 81242 96599 109989 120026 92737 79974 99316 128787 97623 82583 98643 115813 125371 94232 87158 100040 140059 107932 72581 94366 136370 99966 91012 94981 99837 122344 93833 79015 106369 129743 109249 67504 98352 113549 121818 81282 81112 104780 127616 99525 64605 96265 130826 106232 81393 79939 96074 128673 104623 78952 105319 131203 106404 77731 95031 118316 123985 93840 82154 105417 137398 97544 64073 98588 124504 98680 84370 90822 101246 120885 101632 80747 95627 127570 85647 71602 94935 112323 127565 89750 84398 101367 131652 99333 56080 89927 139170 109465 68325 93540 104827 130842 93922 74096 100849 136161 102126 57607 99427 121440 126019 72034 78048 86219 127563 86909 64250 84130 131142 100822 75551 90555 101147 120927 92098 72136 107763 124944 96861 ------------- 方差=4.20377555852E8,标准差=20503.110882302713 |
|
返回顶楼 | |
发表时间:2011-01-15
发现带种子的方差 比 不带种子的还要大
|
|
返回顶楼 | |
发表时间:2011-01-15
种子改成 System.nanoTime()
public static void runRandom() { for (int i = 0; i < N*TIMES; i++) ary[new Random(System.nanoTime()).nextInt(N)]++; } |
|
返回顶楼 | |
发表时间:2011-01-15
最后修改:2011-01-15
used time is :162722 ms 99367 99914 100421 100049 100037 100219 100641 101093 100494 100348 99574 99810 99607 99575 99405 99962 99912 99693 100057 99885 100097 100401 99692 99494 99711 100262 99026 99905 99420 99833 100382 100289 100048 99960 100099 99811 100096 99949 99785 100041 99921 100264 100824 100476 100237 100371 100100 100506 99844 100757 100200 100073 100111 99374 99867 100142 100328 99589 99523 99551 100031 100515 99897 99675 100778 100296 100280 100508 99610 99773 98995 99145 99920 99759 99699 100873 100811 100632 99953 99977 99843 99591 100284 99580 100251 100170 100072 99839 99448 100113 100363 100432 99602 100506 100379 100102 99894 99476 99603 100076 100510 99983 100488 100633 100496 99923 100487 100342 100479 99669 98791 99287 99611 100127 100079 99709 99539 100290 100342 100939 100229 100764 99891 100290 100274 99559 99226 99634 99676 100257 99553 100116 99807 99589 99934 100307 100313 100482 98991 99992 99641 100217 99843 100053 100230 99788 100105 101192 101110 100456 100373 99737 99993 100111 100085 99830 99477 99614 99378 100309 100238 100506 99834 99355 99973 99516 99815 99839 99819 99481 99427 99570 100082 99820 100298 100195 99851 100390 100108 100450 100158 99962 100107 99898 100497 99920 100080 100455 100238 100512 100573 100562 99762 100079 99704 99898 99744 99811 99736 99109 99171 100102 100028 99934 100426 100074 99979 100315 99900 99289 98886 99546 99379 99684 99904 99957 100083 100244 100373 100890 99770 99967 100085 100255 99941 100061 99303 99046 98837 100082 100153 100416 100450 100522 100431 100335 100389 99308 99163 99165 100433 99701 99938 99826 99698 99672 100202 100397 100330 100161 99011 98731 99710 99898 99662 99466 99357 99969 100699 100740 100565 100650 99622 100143 100028 99972 99365 100451 99186 100072 99986 99668 99674 99615 99296 99952 100061 99852 99912 99595 99645 99600 99786 99837 99794 100315 100657 100430 100361 99836 100201 100006 99048 99816 100072 99508 100275 99728 99747 100438 101073 100382 99990 99876 100502 99990 99788 100172 99765 99394 99810 100408 99452 100128 99338 99827 99814 100098 100138 99855 99705 99288 99461 99866 99883 99277 100104 100609 99864 100410 100777 100642 99767 99909 99865 100153 100242 99944 99556 99720 100018 100899 100331 99905 100095 100759 100906 100672 100544 99510 99347 99455 99854 99595 99854 100496 99902 99844 100558 100599 99461 99903 100105 100181 99914 100370 100020 100128 99628 99773 100243 100705 100689 100447 100367 100296 100080 99070 99965 99635 99579 99441 100138 100097 99746 99843 100206 100251 100672 100081 99970 99929 100087 99785 99426 100194 99428 99350 100515 100822 100373 99889 100201 100720 100365 100189 100105 99984 100030 99855 100634 100351 100034 99892 99646 100404 100394 100282 100106 99720 99726 98981 99911 99607 99945 99432 100138 100429 100516 100583 100103 100384 99313 100234 100469 100361 99660 99490 100031 99625 100182 100804 100616 100426 99908 100385 100776 99963 99866 99550 100169 100835 100858 100012 100046 99905 100017 100021 100105 100559 100384 99066 99581 100250 99534 99912 99697 100280 99845 99801 100647 100583 100795 99792 100074 100549 100507 99563 99607 99344 99504 100074 99979 99995 99838 100800 100183 100990 100658 99756 99650 99525 99710 100082 99711 100635 99395 100214 100109 100423 99763 99506 100301 99990 99689 100648 99989 100066 99520 99645 100581 100533 100298 99981 100280 100951 100580 100400 99507 99588 99305 99897 100239 100097 100423 99986 100227 100588 100226 100024 99847 100294 100085 100091 100216 100273 99431 99244 100151 101712 100261 99925 99957 99386 100115 100326 99947 99454 99324 99243 99622 100131 100019 99763 100186 100190 100487 100536 100484 99996 99704 99844 100459 100463 99927 99703 99473 100478 99223 100035 100533 100465 99700 99901 100069 100038 99227 99778 99291 99969 99793 99413 100106 100141 100176 99997 100974 101237 99704 100311 99839 100215 100163 99328 100013 100125 100238 100765 99876 100918 99400 99702 99150 99357 100470 100222 98715 99738 99854 100552 100344 99913 99540 99989 99724 100405 100291 100236 99513 99849 99376 100180 100375 99458 99168 99797 100579 100457 100583 99950 99500 100365 100186 99692 99918 99856 99513 99728 100120 100539 99581 99675 99838 99396 99833 100204 100229 99731 99321 99859 99350 100591 99782 100086 100165 100212 100403 100118 99341 99576 99556 99700 99904 99875 99808 100072 99736 100264 100877 100434 100081 99535 99930 99813 100290 100015 99637 99541 99835 101032 100285 100531 100211 99714 100580 99772 99792 99848 99306 100027 99479 100153 100132 99994 99701 99414 100222 100509 100857 100440 100147 99520 99957 99999 100183 99395 99897 100243 100029 100651 100185 99600 99981 99894 100143 100037 100639 99853 99671 99408 99608 99838 100007 99466 100023 99470 100032 100326 99744 99699 99675 100309 100145 99892 100421 99923 100297 100052 100433 100937 100465 100009 100041 100040 100321 99908 99931 99983 99723 100360 100611 100489 99853 100577 99687 100339 100237 100000 99702 99114 98749 99978 99610 99902 98942 100145 100330 100123 100410 100240 99768 100231 99724 100247 99636 100078 100157 99470 99900 99838 99836 100276 99938 100383 100197 100424 100203 99444 99342 99289 100118 99506 100010 100551 100734 99932 100590 100307 100368 99857 100237 99765 99420 100321 99408 99597 99386 99338 100654 99914 100635 100241 99774 99911 99752 99781 99923 99997 99868 99064 99926 100159 100720 99793 100380 100261 99811 100304 100046 99638 99651 100419 100549 100083 99851 99883 100291 100202 100523 100928 100515 100470 99913 99802 99903 100171 100068 100017 99647 100424 100754 100111 99645 99438 100040 99944 100429 100076 99800 99741 99250 100055 99914 100054 100072 100651 101200 99887 100126 100043 99507 99605 99873 100377 99321 100094 99757 99859 99809 99527 99967 100394 100243 100466 99714 100014 100124 99608 99657 99668 100934 100414 100457 100265 100403 100747 100439 100405 99772 99489 99368 99255 99124 100206 99644 99466 100307 100560 100552 99907 99477 99916 99325 99737 99560 99259 99308 99323 100183 100167 100609 99975 99970 99614 100286 99933 100276 99887 99388 99756 99905 99893 100052 99860 100242 100362 101219 100609 100238 100498 99664 99648 99619 100254 100226 99804 99372 99516 99556 99766 100745 100256 99640 99883 99997 99916 99691 99462 99420 99800 100102 100564 100956 99923 99408 100000 100306 99927 99858 100627 100134 99937 99876 99837 99693 99727 99461 99727 100519 100653 100340 99587 99730 99816 99343 100102 99191 99792 99705 99907 100159 100241 100198 99900 99996 100439 100863 100029 99869 99513 ------------- 方差=182477.852,标准差=427.1742642060732 |
|
返回顶楼 | |
发表时间:2011-01-17
jorneyR 写道 我是这样写的,当程序每次运行的时候,种子是不一样的,但是在同一个程序中,种子还是同一个,是我没有描述清楚。
import java.util.Random; public class CommonUtil { private static Random rand = null; // 返回一个范围在[0, max)的随机数 public static int nextInt(int max) { if (rand == null) { synchronized (CommonUtil.class) { if (rand == null) { rand = new Random(System.currentTimeMillis()); } } } return rand.nextInt(max); } } 恩,这个就是后来我改的方法 |
|
返回顶楼 | |
发表时间:2011-01-17
pengzhoushuo 写道 不知道你用的JDK是什么版本?
如果是1.4及以下的,那new Random() 默认就是用System.currentSystemMillions()作为种子。跟你后来改的程序是一样的。 如果是1.5及以上的,那new Random()默认是用System.currentSystemNanoTime() 再加上一个Random的static变量的值为种子,这个static你每new Random()一次,它的值便会自增1。 我用的1.6,根据你的意思加我的猜测,这个种子相近的话出现的随机数列的值的范围也相近啊,坐等高手看看 |
|
返回顶楼 | |
发表时间:2011-01-17
苍山洱海 写道 发现带种子的方差 比 不带种子的还要大
实践帝,拜服一个先。前面有哥们回复+我的推测(上一楼),种子相近的话,产生的随机数列的范围也会比较相近, 所以这个用时间做种子的方差会比没种子的大(我推测你用的也是1.5版本以上的JDK),因为你for循环俩时间基本变化不大,很可能相等。 而作为一个抽奖程序,现实中是抽一个大家乐呵一下再抽下一个,所以种子变化大的多。所以才能产生我说的现象吧,把时间作为种子后,产生的随机数更分布均匀了 |
|
返回顶楼 | |
发表时间:2011-01-17
我觉得一直以来,人都有个错误的认识,以为人脑反应出的是随机数。其实你随机100个出来看,你会发现想到的会有很多重复,或者接下来的数是按照某个规律出现的。人肉级别的随机数也是伪的。
|
|
返回顶楼 | |