Beste mensen,

Als ik een getal tussen 0 en 100 heb (bijv. 35)
Hoe kan ik er dan voor zorgen dat een bepaalde code dan met 35% kans wordt uitgevoerd. Ik heb er nu al een hele tijd naar zitten zoeken maar ik kan het echt niet vinden.

BVD
Danny schreef op 10.01.2009 19:47
Een random generator is altijd via een vast algoritme getallen aan het "verzinnen". Seeden is daarom belangrijk.


Wat zeg je nu allemaal? Wil je beweren dat de nummers al voor gedefiniereerd zijn?
Voor als je jezelf verveelt. Zet op je server en kijk er naar.
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);

session_start();

$_SESSION['pot'] = isset($_SESSION['pot']) ? $_SESSION['pot'] + 1 : 1;
$_SESSION['ran'] = isset($_SESSION['ran']) ? $_SESSION['ran'] : 0;
$_SESSION['ran1'] = isset($_SESSION['ran1']) ? $_SESSION['ran1'] : 0;

if(rand(1, 100) <= 35)
{
$_SESSION['ran'] = $_SESSION['ran'] + 1;
}
echo '<br/>Score ' . $_SESSION['ran'] . ' van de ' . $_SESSION['pot'] . ' en dat is ' . round($_SESSION['ran'] / $_SESSION['pot'] * 100) . '%';

if(mt_rand(1, 100) <= 35)
{
$_SESSION['ran1'] = $_SESSION['ran1'] + 1;
}
echo '<br/>Score ' . $_SESSION['ran1'] . ' van de ' . $_SESSION['pot'] . ' en dat is ' . round($_SESSION['ran1'] / $_SESSION['pot'] * 100) . '%';

header('Refresh: 0; URL=""');
//session_destroy();

?>
levert dat geen "Headers already sent at line .." op?
Hipska schreef op 10.01.2009 20:01
levert dat geen "Headers already sent at line .." op?

Eh, nou je het zegt, eh, nee. Zou toch wel moeten eigenlijk.
Het werkt perfect.
Komt waarschijnlijk omdat je niet echt 'true' (0 === false, "" === false) gegevens teruggeeft?
Er is wel degelijk output vóór de header. Vreemd.
Maar wat zegt dit alles?
http://phphulp.chessweb.eu/santhe.php

Warning: Cannot modify header information - headers already sent by (output started at /home/luukschak/domains/chessweb.eu/public_html/phphulp/santhe.php:15) in /home/luukschak/domains/chessweb.eu/public_html/phphulp/santhe.php on line 23
@Yorick: dat weet je als je het uitvoert. Of mt_rand() sneller/beter is dan rand().
yorick17 schreef op 10.01.2009 20:20
Maar wat zegt dit alles?

Dat het random gedoe wel aardig in de beurt komt van van het zou moeten doen.

Tussenstandje van mijn scriptje:

Score 3552 van de 10150 en dat is 35%
Score 3551 van de 10150 en dat is 35%

PHP Newbie schreef op 10.01.2009 20:23
http://phphulp.chessweb.eu/santhe.php

Warning: Cannot modify header information - headers already sent by (output started at /home/luukschak/domains/chessweb.eu/public_html/phphulp/santhe.php:15) in /home/luukschak/domains/chessweb.eu/public_html/phphulp/santhe.php on line 23

He, bij jou doet ie het niet.
Doet ie van mij het bij jou?
http://www.test.santhe.nl/test.php

Reageren