login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Willekeurig verdelen (Opgelost)

Offline octavian - 30/03/2007 18:31
Avatar van octavianNieuw lid Stel ik wil een taart of een steentjes willekeurig verdelen onder een bepaald aantal personen (bv 10). In totaal zijn er 25 steentjes.

Bevoorbeeld:
Jan -> 5
Karel -> 1
Jef -> 1
Louis -> 0
Jeremy -> 3
Steven -> 2
Pascal -> 2
Jurgen -> 0
Jerome -> 4
Jose -> 7

Enig idee hoe ik zoiets in PHP kan gieten?
Alvast bedankt ;).

10 antwoorden

Gesponsorde links
Offline Stefan14 - 30/03/2007 18:38
Avatar van Stefan14 PHP gevorderde ik weet niet of je de personen in een database hebt staan of in een array oid. maar het is wel mogelijk.

- een loopje die alle steentjes afgaat (in dit geval 25).
- bij iedere doorloop van de loop een willekeurig persoon (random) selecteren.
- bij deze persoon 1 steentje optellen.
Offline octavian - 30/03/2007 19:04
Avatar van octavian Nieuw lid Hoe moet ik die in een array zetten?

$a=array(Jan->$keitjesJan,Jef->$keitjesJef,...);

?
Offline Milannetjuhh - 30/03/2007 19:39 (laatste wijziging 30/03/2007 19:40)
Avatar van Milannetjuhh Nieuw lid
  1. <?php
  2. $getal1 = rand(0, 25);
  3. $getal2 = rand(0, 25);
  4. $getal3 = rand(0, 25);
  5. $getal4 = rand(0, 25);
  6. $getal5 = rand(0, 25);
  7. $getal6 = rand(0, 25);
  8. $getal7 = rand(0, 25);
  9. $getal8 = rand(0, 25);
  10. $getal9 = rand(0, 25);
  11. $getal10 = rand(0, 25);
  12.  
  13. print " Jan heeft ".$getal1." steentje(s)<br>
  14. Karel heeft ".$getal2." steentje(s)<br>
  15. Jef heeft ".$getal3." steentje(s)<br>
  16. Louis heeft ".$getal4." steentje(s)<br>
  17. Jeremy heeft ".$getal5." steentje(s)<br>
  18. Steven heeft ".$getal6." steentje(s)<br>
  19. Pascale heeft ".$getal7." steentje(s)<br>
  20. Jurgen heeft ".$getal8." steentje(s)<br>
  21. Jerome heeft ".$getal9." steentje(s)<br>
  22. Jose heeft ".$getal10." steentje(s)<br>";
  23. ?>


Alleen zijn ze samen nu niet 25 :S
Offline octavian - 30/03/2007 19:46
Avatar van octavian Nieuw lid Neen, ze moeten samen 25 zijn!
Offline Milannetjuhh - 30/03/2007 19:48
Avatar van Milannetjuhh Nieuw lid kijk ander hier eens, daar zal het vast wel bij staan:
http://nl3.php.net/manual/nl/function.rand.php
Offline octavian - 30/03/2007 21:04
Avatar van octavian Nieuw lid Na een uur zoeken kan ik je zeggen dat het daar niet staat .
Offline Stefan14 - 30/03/2007 21:07
Avatar van Stefan14 PHP gevorderde goed, ik heb even snel een script voor je geschreven, deze werkt met een database wat ook wel aan te bevelen is omdat je het waarschijnlijk wilt opslaan.

  1. <?php
  2. $aantal = 25;
  3.  
  4. for ($i=1; $i<=$aantal; $i++)
  5. {
  6. $query1 = "SELECT id FROM users ORDER BY RAND() LIMIT 1";
  7. $result1 = mysql_query($query1) or die (mysql_error());
  8. $userID = mysql_result($result1,'id');
  9.  
  10. $query2 = "UPDATE users SET steentjes=steentjes+1 WHERE id=".$userID;
  11. $result2 = mysql_query($query2) or die (mysql_error());
  12. }
  13.  
  14. $query3 = "SELECT * FROM users";
  15. $result3 = mysql_query($query3) or die (mysql_error());
  16.  
  17. while ($row3 = mysql_fetch_array($result3))
  18. {
  19. echo($row3['naam'].' heeft op dit moment '.$row3['steentjes'].' steentjes<br />');
  20. }
  21. ?>


niet getest, maar heb er wel vertrouwen in. hopelijk heb je er wat aan.
Offline octavian - 30/03/2007 21:10
Avatar van octavian Nieuw lid Kan het niet zonder database?:p
Offline Stefan14 - 30/03/2007 21:20 (laatste wijziging 30/03/2007 21:21)
Avatar van Stefan14 PHP gevorderde @octavian, tuurlijk kan dat wel, maar met arrays ben ik minder handig dan met databases.
Maar met mijn script zie je hopelijk wel een beetje hoe je het aan moet pakken.

als je met google even zoekt op hoe je iets random uit een array kan pakken en voor de rest wat basis dingen als dingen invoegen in een array moet je volgens mij al een heel eind komen.

Daarnaast heb ik geen tijd om dit uit te zoeken op dit moment, moet hoognodig weer verder aan een project wat morgenochtend af moet zijn. 
Offline octavian - 30/03/2007 23:36
Avatar van octavian Nieuw lid Ik heb een if() tussengegooid. Lijkt me te werken:D
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2019 Sitemasters.be - Regels - Laadtijd: 0.207s