login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Random met procenten (Opgelost)

Offline Oli4 - 09/03/2008 11:41
Avatar van Oli4Nieuw lid Beste allemaal,
Ik ben een soort spel aan het maken.
Daarin kun je bijv. als eigenaar van een bedrijf een beslissing maken.
Nu moet het zo zijn dat 90 % van de keren dat je de beslissing maakt het wel lukt, maar 10 % van de keren gaat het fout. Dit moet dus gewoon random gebeuren, alleen moet er vaker 'Gelukt!' komen te staan.
Weet iemand wat ik hiervoor moet gebruiken?
Bedankt

12 antwoorden

Gesponsorde links
Offline Rik - 09/03/2008 11:44
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Dat doe je zo:
  1. if (rand(0, 10) > 1) {
  2. echo 'gelukt!';
  3. } else {
  4. echo 'mislukt!';
  5. }
Offline Oli4 - 09/03/2008 11:46 (laatste wijziging 09/03/2008 11:47)
Avatar van Oli4 Nieuw lid Oke, zou je miss kunnen uitleggen wat er dan gebeurt, want ik snap het nog niet zo. En ik vind het fijn om te weten wat ik programmeer.
Bedankt 
Offline Rik - 09/03/2008 11:51
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
PHP.net: rand maakt nu een willekeurig getal aan van 0 tot en met 10. 90% van die getallen zijn meer dan 1, dus als het getal dat er uit komt meer dan 1 is zit je in dat gebied waar je 90% kans op hebt.
Offline ikkedikke - 09/03/2008 12:36
Avatar van ikkedikke PHP expert nja nu maak je een schoonheidsfoutje
Je keurt 0 en 1 af, 2 t/m 10 keur je goed. Het is niet precies 10% maar het idee klopt!
Offline Rik - 09/03/2008 12:49
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Je hebt gelijk, eigenlijk zou je dan op 1 moeten beginnen en niet op 0. Of je telt van 0 tot 9.
Offline Oli4 - 09/03/2008 13:29
Avatar van Oli4 Nieuw lid Oke, ik snap het. Alleen nog een vraag, waar geef je dan die 90 % aan? Want nu heb je dus 90 % kans dat er meer dan 1 uit komt, maar als ik nou 60 % wil...
Bedankt
Offline Rik - 09/03/2008 13:39
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Dan moet er dus meer dan 100 - 60 = 40%, dus 4 uit komen.
Offline Martijn - 09/03/2008 13:53 (laatste wijziging 09/03/2008 13:54)
Avatar van Martijn Crew PHP mssn makkelijker gemaakt:
$getal=rand(1,100) dus, gewoon net als %, tot 100 

je wilt 90% kans:
  1. if($getal<90){echo"succes";}
  2. else{echo "geen succes";}
Offline Grayen - 09/03/2008 21:43
Avatar van Grayen PHP ver gevorderde @DeviourSoul
Je maakt alleen een foutje, een hele kleine, maar scheelt toch weer een procent. Je zal <= moeten gebruiken. Stel dat er 90 uitkomt bij rand(1, 100), dan zal je code "geen succes" geven, terwijl hij toch nog klopt.

  1. <?php
  2. function kans($iChange)
  3. {
  4. return rand(1, 100) <= $iChange;
  5. }
  6.  
  7. if (kans(90))
  8. {
  9. echo 'gelukt';
  10. }
  11. else
  12. {
  13. echo 'mislukt';
  14. }
  15. ?>
Offline Ibrahim - 10/03/2008 08:43 (laatste wijziging 10/03/2008 08:45)
Avatar van Ibrahim PHP expert is het niet >= 90 ?

en @reactie_hierboven, wrm een functie rondom een functie 

  1. if (rand(1,100) >= 90) {
  2. /** succes **/
  3. } else {
  4. /** mislukt **/
  5. }
Offline nemesiskoen - 10/03/2008 10:31
Avatar van nemesiskoen Gouden medaille

PHP expert
[quote]reactie_hierboven, wrm een functie rondom een functie /quote]

Beyond the obvious... omdat anders de topicposter er niets van begrijpt.
Offline Oli4 - 10/03/2008 11:47
Avatar van Oli4 Nieuw lid Oke, bedankt allemaal. Ik snap het nu helemaal!:D
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.23s