[C++] Procentowa szansa na odpalenie funkcji
Ostatnio zmodyfikowano 2013-07-31 15:19
MonoMisiek Temat założony przez niniejszego użytkownika |
[C++] Procentowa szansa na odpalenie funkcji » 2013-07-31 14:50:48 Piszę program, w którym na początku wprowadzam % szansy na wykonanie funkcji... Problem w tym, że to działa niezadowalająco. np: dla wpisanego 100%, funkcja się odpala realnie ~90% (z tego powodu zrobiłem zabezpieczenie, że 100% zamienia się na 5000...) dla 50, wychodzi 30. dla 70, wychodzi z 50. Być może z punktu widzenia matematyki jest ok. Ale to odchylenie jest dla mnie za duże. cin >> szansa; for( int i = 1; i < 2500; i++ ) { if( szansa >= 100 ) { szansa = 5000; } int tempszansa =( rand() % 100 ) + 1; for( int iszansa = 1; iszansa <= szansa; iszansa++ ) { if((( rand() % 100 ) + 1 ) ==( tempszansa ) ) { mojafunkcja(); suma++; break; } } } Zapewne taki sposób sprawdzania % do niczego się nie nadaje. Możecie jakiś pomysł podsunąć? |
|
Monika90 |
» 2013-07-31 15:06:18 if( rand() % 100 < szansa ) twojafunkcja();
albo std::random_device rnd_dev; std::mt19937 urng( rnd_dev() ); std::bernoulli_distribution dist( szansa / 100.); if( dist( urng ) ) twojafunkcja();
|
|
MonoMisiek Temat założony przez niniejszego użytkownika |
» 2013-07-31 15:19:33 łapię, dzięki |
|
« 1 » |