abonnement Unibet Coolblue
  dinsdag 25 december 2018 @ 08:51:53 #1
466657 EasyLife
Live Cheap, Live Easy
pi_183953647
Is er een makkelijke manier om een random nummer te krijgen tussen de 50 en 150 in PHP, waarbij het midden vaker voorkomt?
pi_183954144
Daar is geen ingebouwde functie voor, je zal dit zelf moeten implementeren. Bijv met een tabel met gewichten voor elk nummer. Tel alle gewichten bij elkaar op, genereer een random getal tussen nul en het totaal van alle gewichten, en loop dan door alle getallen, trek elke keer het bijbehorende gewicht af totdat je bij nul komt, en dan heb je je gewogen random getal.
  dinsdag 25 december 2018 @ 11:14:32 #3
85514 ralfie
!Yvan eht nioj
  dinsdag 25 december 2018 @ 22:57:34 #4
466657 EasyLife
Live Cheap, Live Easy
pi_183969270
quote:
Dit is met een plugin ofzo? Werkt niet zomaar.

Zoek een optie die meteen werkt, zonder andere shit.
pi_183969383
kan dat niet gewoon met dit?
https://www.thoughtco.com/rand-php-function-2694085

Je kunt daar later weer een if functie achter zetten van tel op als het getal minder is als 50 of hoger is als 150?

Het kan namelijk met als start rand() en dan er bij optellen of aftrekken tussen die grenzen.
Maar moet je er een stukje achter gaan programmeren denk ik.

Het gaat er in eerste instantie om dat je een random nummer hebt.
Daarna met paar keer iets in PHP waardoor je binnen je marge komt?

wat is trouwens het specifieke doel hiervan? Wellicht is er een betere methode nl?

Anders als je het tussen de invoer wil hebben dan moet je toch even kijken naar MySQL denk

[ Bericht 19% gewijzigd door kree op 25-12-2018 23:29:36 ]
Do what you love, love what you do!
  woensdag 26 december 2018 @ 02:34:54 #6
85514 ralfie
!Yvan eht nioj
pi_183973461
quote:
0s.gif Op dinsdag 25 december 2018 22:57 schreef EasyLife het volgende:

[..]

Dit is met een plugin ofzo? Werkt niet zomaar.

Zoek een optie die meteen werkt, zonder andere shit.
Hier, shitloos:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
function purebell($min,$max,$std_deviation,$step=1) {
  
$rand1 = (float)mt_rand()/(float)mt_getrandmax();
  
$rand2 = (float)mt_rand()/(float)mt_getrandmax();
  
$gaussian_number sqrt(-log($rand1)) * cos(M_PI $rand2);
  
$mean = ($max $min) / 2;
  
$random_number = ($gaussian_number $std_deviation) + $mean;
  
$random_number round($random_number $step) * $step;
  if(
$random_number $min || $random_number $max) {
    
$random_number purebell($min$max,$std_deviation);
  }
  return 
$random_number;
}
?>
bron: https://natedenlinger.com(...)ribution-bell-curve/

Geen idee hoe goed het is, maar het lijkt te doen wat je vraagt.
pi_183973576
Je zou hier ook een vermenigvuldigde sinus voor kunnen gebruiken.
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')