Véletlenszám? Megoldások?
Sajnos az időalapú rand() függvény, ha egymás után kell generálni a számokat nem működik (mily meglepő). Egy kicsit megkavartam, hogy menjen. Mit gondoltok róla? Vagy milyen jobb megoldásokat tudtok?
#1 pontosan ahogy az 1. mondja.
Alapértelmezetten a rand egy 0 és 1 közötti számot ad vissza, ami int-ben tárolva 0
C-ben a rand() nem egy 0 ês 1 közötti törtet ad vissza, hanem egy egészet 0 és RAND_MAX között.
A kérdezőnek nem tudom mi a problémája.
"ha egymás után kell generálni a számokat nem működik (mily meglepő)."
Mi a problémád? Nem fogsz gyökvonással jobb randomot előállítani, ha az alap rossz azzal nem tudsz mit kezdeni. De az a sejtés, hogy az alap jó, csak te csinálsz rosszul valamit.
" hogy egy számláló megy indulástól kezdve és ha egy ciklusban van kiírva akkor nem tűnnek túl véletlenszerűnek a számok (egymás után vagy azonos az előzővel a szám vagy 2 vel vagy 3 mal nő)"
Ez egyrészt baromság, másrészt nem igaz.
A C-s véletlen generátor messze nem a legjobb generátor, de egyszerűbb esetekre bőven használható.
Kb az van amit official mondott. Egy ideig növekednek a számok aztán 0-tól újrakezdi. Az sqrt()-t nem tudom miért tettem bele, egyedül a num1 ciklusban való értékadásánal hagynám most is benne. Random nem ettől lett, hanem a szorzástól és az utána az egyik tényező biztos megváltoztatásától.
Ui.: Lehet még így is hülyeség amit mondok, akkor bocsi. Este majd küldök egy képet arról hogy egyébként hogyan működik.
Ui2: a zárójel kétszer van a while után.
Valami mást szúrtál el, hogy mit azt nem tudom.
Kód:
#include <iostream>
#include <cstdlib>
#include <ctime>
int main()
{
srand(time(NULL));
for (int i = 0; i < 1000; ++i)
std::cout << rand() << " ";
return 0;
}
Output:
1850 29130 2819 16334 15997 20459 1311 13118 24868 2648 8952 21904 23753 27852 939 646 13057 29728 27651 31176 15001 6774 127
70 11460 1567 13240 30434 7864 5028 28225 30267 2829 10689 19417 27112 17895 1496 9959 19205 2810 16284 6114 29052 11935 1492
20233 22240 25895 6236 13908 153 5231 9068 28586 21826 25524 24604 852 24911 32169 7720 21170 20211 14535 6897 9004 5441 662
9 18885 21868 8849 25864 29024 7370 1573 12412 17075 19208 23820 11812 19684 1088 1607 7950 29333 28442 25131 9546 17513 1363
4 8454 26621 25796 26650 25861 15793 22739 7596 15189 20719 27341 23010 12425 29456 376 6137 1084 4432 4334 2099 16375 36 220
9 21964 13653 4302 25245 2352 10084 9518 14349 23147 9039 13787 32513 2017 19514 32370 21870 1343 7790 17454 32118 5809 28086
27321 28394 11350 8968 19266 8718 4593 32104 464 30620 18145 23050 9430 25099 4691 18359 6919 13328 10166 26993 875 14438 28
527 27738 25523 30411 18382 5330 4298 19019 21057 9952 1452 11456 8392 11731 7291 23450 22441 26409 24016 14812 5989 21679 23
119 4967 17130 14826 17022 9595 30218 2230 12503 4219 16428 301 23067 5872 30530 2250 6122 19921 14075 31950 401 8706 24633 9
95 1827 22298 11461 8960 17099 25449 11074 6540 29792 19770 14175 18630 23354 27989 16977 10852 25156 15048 32641 6778 21075
999 18817 30878 32438 14482 21317 25674 8207 10678 31120 6274 20833 25110 18604 10934 25449 31820 2654 12521 31282 6666 28697
4883 10468 24742 11634 3012 32732 7894 5844 7179 16642 32696 6261 30358 11863 28437 6536 9754 9934 4838 8117 29430 1373 3227
9 18118 19475 30291 140 24739 14094 14060 14434 20864 2969 29475 18551 31829 32286 13767 22572 21390 15782 7889 16489 25092 1
0490 21493 2530 24621 24327 24439 8345 10639 11911 28992 24740 9851 10462 13873 24625 32247 23618 14775 6855 9212 31007 1440
25039 6114 26298 29741 13906 26392 2836 26728 28676 18456 18961 24759 21890 24986 32729 6066 2520 4616 31359 10034 29510 1925
1 14049 25002 32580 22084 25807 21947 26563 5109 30319 12290 23990 3329 16095 28469 15569 26328 25629 7790 11408 4248 10276 2
502 21116 15417 19800 8486 31146 30727 6692 32090 21380 31830 16354 15207 13771 369 10491 8735 31197 12755 29263 17906 24884
3226 5079 7943 9008 19512 31880 17804 2070 9580 9595 18506 13656 29297 24652 20860 3863 7797 25792 3553 21222 25932 25002 257
6 20433 15206 5391 31244 24478 29182 12168 7960 1362 27541 1768 16332 21751 29855 23583 26217 2205 5244 14430 22890 26271 273
05 9596 603 23847 27704 17817 14062 30452 5501 3585 6220 3419 25611 10578 31913 23436 11487 17634 5915 22295 8922 19803 20908
29103 8565 24232 3502 10285 4016 27413 15950 728 28491 23985 4460 27363 27705 15351 6826 31031 82 2734 13507 8819 32584 3124
6 3359 25649 7900 7460 3492 22412 20305 12408 6350 19679 30753 13292 19458 21710 27888 23527 15391 23179 11966 7603 24663 131
38 19808 23332 7997 18230 32049 29051 12830 14112 13573 12169 21141 9237 26718 30488 26202 31671 12771 3462 7515 28175 525 24
499 13838 28809 9764 15646 23557 29248 15210 20042 21699 9596 25238 19047 28366 633 18307 12334 26373 26475 20778 1549 14388
31166 3534 25988 2278 11426 12150 21967 11130 4295 11424 14789 25721 20837 22836 21760 27431 640 2999 11326 22616 9322 8897 1
7671 30597 137 32433 2192 11807 17242 17311 19936 27939 30646 30610 20273 24815 18261 20723 3737 21332 9360 18754 28137 29676
16747 18440 32214 31406 30674 31245 18518 22719 1827 10442 6733 27531 19181 9761 4201 26133 20216 8268 27466 25739 25733 292
04 28391 24094 7382 17219 20781 26897 19697 3419 31721 1295 32418 22664 9703 24513 29375 17620 1883 18336 6319 13210 11649 16
648 7981 9533 12673 29070 586 7961 22165 21908 15025 11706 21357 29723 29231 22348 19155 1240 24947 4691 14219 15497 15122 52
77 20349 13193 18382 3700 8726 6818 6167 9752 30187 12835 28370 18284 10655 14131 18778 7151 7175 15205 10436 16110 24461 679
7 104 504 15570 721 28060 21907 18584 17155 7363 10797 4318 21294 32647 23893 9548 19310 14434 1835 32466 15621 24419 15381 2
701 8620 1071 5812 23530 21799 4422 7703 18957 19740 29831 23598 31860 805 12535 14465 10967 17700 15806 27425 5203 24535 221
30 7135 29128 22444 8344 445 26496 9174 19048 5794 14865 8096 1745 13138 19076 9729 2749 10140 7606 2929 28566 8918 29439 271
32 7945 134 11794 29589 11274 19810 6180 16044 15640 6267 15441 16643 27586 25781 25403 27837 15722 20090 29172 9144 6473 147
67 12318 29980 24499 7143 14672 22836 1692 14039 7612 24445 24412 22283 30223 765 27055 27351 28313 6358 22528 1423 3502 3355
10471 8954 14668 25058 31216 16133 16381 9371 30622 5557 26879 19872 3759 8031 20387 15885 17058 7451 3571 20433 19831 18806
31383 11269 27830 359 32250 23421 32690 31109 17064 17821 23311 21366 17659 4462 30082 10155 1526 7409 20952 22346 25969 324
36 19002 14956 26486 17826 8367 32393 26860 27423 30946 18736 1906 11093 7974 29436 16526 14280 16567 28355 3079 30769 31042
12560 30095 19849 22952 11220 31141 2916 19456 12888 10682 7040 30939 22902 23443 32670 4555 10249 26606 9616 9510 11170 1546
4 16788 24327 17789 17566 8928 23446 17331 28307 13950 28297 6832 20050 11354 1003 21224 9428 29338 32284 32454 20003 31533 1
3594 19685 23232 32679 31486 2691 22594 14156 18890 10803 3393 13162 32353 8913 11378 21997 17623 15035 17171 5677 6635 4926
26250 2058 1490 2127 25929 22843 29751 14460 32500 14563 19839 18722 26566 23909 13649 15071 6961 7290 4694 25162 16836 18817
17213 22754 11858 19990 9475 31301 13905 12517 20081 16803 27008 32448 9446 7025 27853 18928 11862 32610 31861 13257 17555 2
6259 22893 13442 3531 29189 9729 5443 24146 21841 30139 20606 26530 22935 5254 19587 22689 3256 18707 9295 21282 28869 5756 2
9349 23213 16311 16679 21345 8323 5984 6894 3848 20701 8609 23164 9379 17781 3294 506 9678 16711 26799 6380 6412 6553 15064 1
5701 22109 28729 24700 20514 4627
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!