login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Random maar met nummers overslaan

Offline rpgnox - 01/04/2011 11:43
Avatar van rpgnoxPHP interesse Ik probeer een script te maken dat waneer type = 1 dan moet mijn database worden geupdate met het cijfer 1 of 3. Ik heb dit proberen te doen met het volgende, maar dat werkt dus niet (krijg alleen 1 geupdate, 3 doet het niet)

  1. if($bepaal_type == 1 AND $kwaliteit == Y){$kwaliteit_c = rand(1,1) OR $kwaliteit_c = rand(3,3);}


Een vergelijkbare vraag is hoe ik kan werken met percentage kansen. Als voorbeeld: als type =1 dan moet er een kans van 30% zijn dat het cijfer 1 is, 40% voor cijfer 5, 20% voor cijfer 8 en 10% voor cijfer 0. Hoe zou ik dat kunnen doen?

4 antwoorden

Gesponsorde links
Offline lolll - 01/04/2011 12:21
Avatar van lolll Lid Voor het percentage is er deze site.
Voor je database weet ik niet direct een oplossing.
Offline rpgnox - 01/04/2011 12:36
Avatar van rpgnox PHP interesse Bedankt, en wellicht iemand die weet hoe ik nummers over kan slaan? (dus vb. 1,3,6,8,9,14)
Offline qubus - 01/04/2011 17:48
Avatar van qubus Lid Zo iets...????

  1. $array = array(1, 3);
  2. if ($bepaal_type == 1 AND $kwaliteit == Y){ $kwaliteit_c = array_rand($array); }


Offline ArieMedia - 04/04/2011 15:29
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
  1. function nieuweKans($i_Type) {
  2. switch($i_Type) {
  3. case 1: $a_NewType = array(1,3); break;
  4. case 2: $a_NewType = array(2,5); break;
  5. default: $a_NewType = array(1, 3); break;
  6. }
  7.  
  8. $a_Rand = array_rand($a_NewType,1);
  9. return $a_Rand[0];
  10. }


Een nadeel is echter wel dat dit verreweg van dynamisch is.. Wat slimmer is, is om het percentage mee te geven

  1. function nieuweKans($i_OudPerc) {
  2. if(rand(0, 100) <= $i_OudPerc) {
  3. $b_Gelukt = true;
  4. } else $b_Gelukt = false;
  5.  
  6. $i_Ammount = rand(0, 10);
  7. $b_Increase = rand(1,2) == 2 ? true : false;
  8. if($b_Increase == true) {
  9. $i_NieuwPerc = $i_OudePerc + $i_Ammount;
  10. if($i_NieuwPerc > 100) {
  11. $i_NieuwPerc = 100;
  12. }
  13. } else {
  14. $i_NieuwPerc = $i_OudePerc - $i_Ammount;
  15. if($i_NieuwPerc < 1) {
  16. $i_NieuwPerc = 1;
  17. }
  18. }
  19. return array('kans_nieuw' => $i_NieuwPerc, 'gelukt' => $b_Gelukt);
  20. }
  21.  
  22. $a_Misdaad = nieuweKans(70);
  23. if($a_Misdaad['gelukt'] == true) {
  24. echo 'Gelukt, de nieuwe kans is '.$a_Misdaad['kans_nieuw'];
  25. }


Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.235s