Du kan omgå de 30 sek med set time limit
http://dk1.php.net[...]
Men hvad computer kører du scriptet på ?
Og nu har jeg ikke prøvet, men hvis du kunne bruge den indbyggede modelus ville det være langt hurtigere.
--
Indholdet af dette indlæg er blevet redigeret af NSA. kunne jo være at det er opsætningen af din kode der halter og betyder den bliver langsom, koder selv i ASP.NET VB/C# og PHP og PHP fejler INTET, men det gør manges koder fordi de sættes helt forkert op eller fordi man laver unødvendige call's eller laver koder der fylder 20 linjer som kan skæres ned til 10 (som eksp.)
--
GA-EX58A-UD3R|I7 920 D0|Hydro H70|12GB Corsair 8-8-8-24|2xEAH5870 1GB|Cooler Master CM 690 Pure.
Jeg er helt med Thomas der, PHP er alt andet end svagt :) - Det er dog heller ikke MathLab :)
Men Modulus ? du behøver ikke en forløkke, det er da aaaalt for langsomt, ligemeget hvad sprog.
fx. k = 34 og tal = 123456.
rest = tal - (floor(tal/k) * k);
rest er lig 2
--
Indholdet af dette indlæg er blevet redigeret af NSA.
Nå ja, og i #0 eksempel hvor du bruger notationer, så vil en modulus 100 næsten altid gi nul, man klipper jo alle de mindre betydlige cifre væk.
m=42E150
= 42000000000000000.....
Så det er rimelig ubrugligt.
Edit: Jeg mener at alle integers over de 14 cifre automatisk bliver floats/notation, så der er ikke så meget at gøre der.
--
Indholdet af dette indlæg er blevet redigeret af NSA.
BC Math er til at håndtere rigtig store tal.
Se her :
http://php.net[...]
bcmod er modulus med meget store tal.
--
Indholdet af dette indlæg er blevet redigeret af NSA. Eksempel :
http://pastebin.com[...]
Og tager langt under 0.01 sekund at eksekvere.
Og er testet OK med over 200 cifre.
--
Indholdet af dette indlæg er blevet redigeret af NSA. #6 Han ville lave en lommeregner - ikke bruge en. Synes dit svar i #3 giver bedre mening. Det er uendeligt mange gange hurtigere og pænere end for-loops.
--
http://tinyCode.dk[...] #0: de 17 cifre er ikke php's problem med generel ieee double precision, altså hvad cpu'en er i stand til direkte. Ellers skal man have specialbiblioteker til at regne med højere præcision over flere instruktioner.
#1: det har ikke noget med timeout at gøre.
Problemet er at 42e150-100 = 42e150, så den bliver aldrig færdig. (men han skal naturligvis heller ikke forsøge at lave modulus på den måde, det vil nok tage sin tid ;)
--
Men hvis han forsøger at lave en lommeregner, så skal han ikke beskylde PHP for at være "svagt"... han kunne bare bruge der ordentligt :)
--
Indholdet af dette indlæg er blevet redigeret af NSA.