-
Fototrend

Új hozzászólás Aktív témák
-
Szabesz
őstag
válasz
bambano
#10004
üzenetére
Legyenek változók, hogy jobban lehessen látni a dolgokat:
$a = bcadd("0","10000");
$a2 = pow($a,2);Ekkor ez a feltétel:
(pow(mt_rand(0,$a),2)+pow(mt_rand(0,$a),2))<=$a2Ami akkor lesz igaz, ha generálódik két olyan legfeljebb
$aoldalhosszúságú négyzet, amik területének összege legfeljebb egy$aoldalhosszúságú négyzet területe ($a2).
Ha az mt_rand nem csak egész számokat adna vissza, akkor az ideális eseteket afrom 0 to $a integrate sqrt($a^2-x^2) dxintegrál adja meg, összes eset pedig az$a2. Mivel a terület arányok nem változnának, lehet$a=1az integrálhoz, mert így rögtön a terület aránya jön ki. Az eredmény pedig aπ/4, ami ~0.785398, de te úgy is felszoroztad 4-gyel, vagyis aπaz amit látni szeretnél a randomból, ha jól sejtem
-
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.$totalszámolja a ciklusokat,$countné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. -
Szabesz
őstag
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Eladó dobozos, fóliás THERMALTAKE The Tower 600 fehér ház
- GMR 16GB (2x8GB) DDR3 1600MHZ Memoria!
- Dell Alienware Nvidia Geforce RTX 2080 Super 8GB
- Aztech Szerviz I RETRO Számítógép Szerviz I Szervizelés, Telepítés, Adatmentés, Szoftveres Javítás
- Használt MSI mag321cup (VA panel, 31.5" (80 cm) 4k, 160Hz ,1ms) eladó.
- BESZÁMÍTÁS! MSI B650 R7 7700 32GB DDR5 1TB SSD RTX 5070Ti 16GB LIAN LI LANCOOL 207 ADATA 850W
- Dell Optiplex 3020 SFF,i3-4150,4GB RAM,250GB HDD,DVD+RW,WIN10
- ÚJ Lenovo LOQ 17IRX10 - 17.3"FHD 165Hz - i7-13650HX - 24GB - 1TB - RTX 5060 - Win11 - 3 év gari - HU
- Lenovo X1 Carbon 13,3" - i5 7300U, 8GB RAM, SSD, jó akku - számla, 6 hó gar
- Eladó Pixel 7 obszidián 128/8 és egy fehér Pixel 7 128/8
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


