[PHP]True of False kiezer aan de hand van %'en

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sam

Sam

20/01/2006 20:11:00
Quote Anchor link
Hallo,,
Kan iemand mij uitleggen hoe ik in PHP een script kan ontwerpen wat als output 'true' of 'false' geeft, en de keuze maakt aan de hand van een aangegeven percentage?

Het is de bedoeling dat ik bijvoorbeeld opgeef 15%, dat de kans dat het script 'true' geeft 15% is, en dat de kans dat het script 'false' geeft 85% is.

Heeft iemand enig idee of dit mogelijk is en zo ja, hoe??

Bedankt alvast, SAplayer ;)
 
PHP hulp

PHP hulp

03/05/2024 09:41:47
 

20/01/2006 20:18:00
Quote Anchor link
Gebruik intval() :-)
 
Jan Koehoorn

Jan Koehoorn

20/01/2006 20:19:00
Quote Anchor link
Zoiets:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
  // true of false random
  function bool_rand ($procent) {
    $getal = mt_rand (0, $procent);
    $toeval = mt_rand (0, 100);

    return $toeval < $getal;
  }

?>


er moet eigenlijk wel een check bij of $procent niet kleiner dan nul of groter dan honderd is.
 
Han eev

Han eev

20/01/2006 20:22:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?PHP
function truefalse($per) {
for($i=0;$i<$per;$i++) {
$arr[] = rand(0,100-$per);
}

for($k=0,$j=100-$per;$k<$j;$k++) {
$arr[] = rand($per,100);
}

$t=0;
$f=0;
foreach($arr as $num) {
if($num < $per) {
$t++;
}
else {
$f++;
}
}

if($t <= $per) {
return true;
}
elseif($f > $per) {
return false;
}
else {
return 'fout';
}
}

?>

Dit heb ik bedacht ik heb geen idee of het werkt maar je kan het proberen

EDIT: Veel te laat en te ingewikkelt ;)
Gewijzigd op 20/01/2006 20:23:00 door Han eev
 
Jan Koehoorn

Jan Koehoorn

20/01/2006 20:23:00
Quote Anchor link
Hee, nu is die van mij weer korter ;-)
 
Han eev

Han eev

20/01/2006 20:24:00
Quote Anchor link
Jah je hebt gelijk, af en toe denk ik te moeilijk ;)
 
PurpleMadness -

PurpleMadness -

20/01/2006 20:26:00
Quote Anchor link
Jan:
Zoiets:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
  // true of false random
  function bool_rand ($procent) {
    $getal = mt_rand (0, $procent);
    $toeval = mt_rand (0, 100);

    return $toeval < $getal;
  }

?>


er moet eigenlijk wel een check bij of $procent niet kleiner dan nul of groter dan honderd is.

Hee, bedankt!, die zocht ik =)

EDIT:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
  // true of false random
  function bool_rand ($procent) {
    if($procent=>0 && $procent<=100){
    $getal = mt_rand (0, $procent);
    $toeval = mt_rand (0, 100);
    return $toeval < $getal;
}
else{
    return false;
}
  }

?>


makkelijker =)
Gewijzigd op 20/01/2006 20:29:00 door PurpleMadness -
 
Sam

Sam

20/01/2006 20:31:00
Quote Anchor link
hmm, ik krijg bij beide scripts niets terug, maar wat moet ik met die return dinge, want die late volgens mij niets zien...(sorry, kom die functie nu voor het eerst tegen)
 
PurpleMadness -

PurpleMadness -

20/01/2006 20:34:00
Quote Anchor link
in een if?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if(bool_rand(50)=="true"){
echo "Jaah, je hebt gewonnen!";
}
else{
echo "Verloren :(";
}

?>


Dat kijkt of hij met 50% kans wint ;)
Wel eerst functie declareren!
Gewijzigd op 20/01/2006 20:35:00 door PurpleMadness -
 
Sam

Sam

20/01/2006 20:47:00
Quote Anchor link
Ik snap de return functie, bij dat korte script krijg k een error, en bij dat lange script een '1' :S
 
Jelmer -

Jelmer -

20/01/2006 20:50:00
Quote Anchor link
Wat is de error?
en 1 staat voor 'true' (niets, leeg dus, voor 'false'). Dat je het even weet.
 
Sam

Sam

20/01/2006 20:54:00
Quote Anchor link
Ik krijg alleen een 1 :S, de error is:

"Parse error: parse error, unexpected T_DOUBLE_ARROW in /home/Sinclair/domains/tunedsinclair.nl/public_html/tsc/test2.php on line 4"
 
PurpleMadness -

PurpleMadness -

20/01/2006 20:56:00
Quote Anchor link
oeps

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
  // true of false random
  function bool_rand ($procent) {
    if($procent>=0 && $procent<=100){
    $getal = mt_rand (0, $procent);
    $toeval = mt_rand (0, 100);
    return $toeval < $getal;
}
else{
    return false;
}
  }

?>


beter
Gewijzigd op 20/01/2006 20:56:00 door PurpleMadness -
 
Sam

Sam

20/01/2006 21:40:00
Quote Anchor link
hmmm, het werkt opzich wel, maar als ik 100 invoer (zonder % erachter) is het antwoord lang niet altijd 1. :S
 
Jan Koehoorn

Jan Koehoorn

20/01/2006 21:50:00
Quote Anchor link
Ik zal er nog eens naar kijken.
 
Jan Koehoorn

Jan Koehoorn

20/01/2006 22:28:00
Quote Anchor link
Hehe, eindelijk gelukt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
  function bool_rand($procent)
  {

      if ($procent >= 0 && $procent <= 100) {
          $toeval = mt_rand(0, 100);
          return $toeval <= $procent;
      }
else {
          return false;
      }
  }

?>


Hij is zelfs nog iets simpeler geworden ;-)
 
Jan Koehoorn

Jan Koehoorn

20/01/2006 22:35:00
Quote Anchor link
En hier de code waar mee ik getest heb, voor wie het interessant vindt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
  error_reporting(E_ALL);
  // true of false random
  function bool_rand($procent)
  {

    if ($procent >= 0 && $procent <= 100) {
      $toeval = mt_rand(0, 100);
      return $toeval <= $procent;
    }
else {
      return false;
    }
  }

  
  $testpercentage = 100;
  $true = 0;
  $false = 0;
  
  for ($i = 0; $i < 20000; $i++) {
    if (bool_rand($testpercentage)) {
      $true++;
    }
else {
      $false++;
    }
  }

  echo '<hr>';
  echo '<p>Waarde: ' . $testpercentage . ' %</p>';
  echo '<p>True: ' . $true . '</p>';
  echo '<p>False: ' . $false . '</p>';
?>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.