Új hozzászólás Aktív témák

  • Szabesz

    őstag

    válasz bambano #10001 üzenetére

    Ugyan nem szoktam PHP-ban programozni, de érdekelt mit is csinál a kód.

    Kicsit ki kellett hámozni, mert sok benne a zavaró rész.

    Első körben ez egy végtelen ciklus, gondolom valamikor van egy break; ami kimaradt.
    Veszünk valami limitet, mondjuk 50000 ciklus után kilépünk, és akkor írjuk ki a végeredményt.
    $total számolja a ciklusokat, $count néha növekszik. Pontosan akkor növekszik amikor a kérdéses feltétel igaz lesz.

    (pow(mt_rand(0,1),2)+pow(mt_rand(0,1),2))<=1
    itt a pow teljesen fölösleges, hisz az mt_rand (0,1) paraméterrel pontosan a két szám egyikével térhet vissza: 0-val vagy 1-gyel, amiken a pow nem fog változtatni. Tehát ez akkor lesz igaz, ha két random szám - ami 0 vagy 1 lehet - összege <=1 lesz. Ez három esetben lehetséges: 0+0, 0+1, 1+0. A fennmaradó eset az 1+1 esetén már nem igaz. Ez 3/4=0,75.
    A módosított feltétel esetén (<1) pedig a lehetséges 4 esetből csak egy lesz igaz: a 0+0. Ez pedig így 1/4=0,25.

    A végeredmény ezt számolja ki, csak valamiért a $count/$total értéket felszorzod 4-gyel. Ezért lesz ugye a két esetben nálad 4*0,25=1, illetve 4*0,75=3 körüli értékek.

    ¯\_(ツ)_/¯

Új hozzászólás Aktív témák