Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

perl & random

Anoniem
wim_verbakel
4 antwoorden
  • perl vraagje:

    is er een betere manier dan

    @ar=(1..6);
    $index=rand @ar;
    $getal=$ar[$index];

    om aan echt toevallige, gehele getallen in dit bereik te komen ?

  • code:

    $max = 6;

    srand(time() ^ ($$ + ($$ << 15)) );
    $number = int(rand($max) + 1);



    aangepaste versie van http://www.cgi101.com/class/ch10/ :smile:

    ——————
    Alvast bedankt… :)

    Powersoft Programming
    Email: psprogramming@multimania.com

  • Ik vind het zelf prettiger om zelf de code voor random numbers te schrijven. Dit is vrij eenvoudig met behulp van de formule van Lehmer

    Nx = (aNx-1 + c) mod m

    De 'sterkte' van de RNG hangt af van de constanten. De volgende constanten blijken goede random numbers te genereren:

    a = 16807
    c = 0
    m = (2 tot de macht 31) - 1

    (genereert longint nummers)

    Je hebt alleen een 'random seed' nodig voor N bij x = 1. Hiervoor kun je bijvoorbeeld de systeemklok gebruiken, let wel op dat de seed niet 0 mag zijn, anders zijn alle getallen 0.

    Maar ik ben nog van plan een Lehmer RNG Howto op mijn website te maken met programmeervoorbeelden.

    [This message has been edited by danieldk (edited 05-10-2001).]

  • [code:1:7bdb99f199]my $dots = int(1 + rand 6);
    print "You threw a $dots
    ";[/code:1:7bdb99f199]

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.