login  Naam:   Wachtwoord: 
Registreer je!
Scripts > PHP > Wiskunde > Faculteit


Reacties op het script Faculteit

Offline  nemesiskoen
Gepost op: 20 mei 2006 - 11:57
Gouden medaille

PHP expert




Leuk script! Er zit wel 1 kleine redeneringsfout in (in de zin van programmeren, niet op wiskundig niveau). Die breaks hoeven er namelijk helemaal niet te staan. Het is wss macht der gewoonte dat je ze er zet. Probeer het maar eens zonder die breaks, dan werkt het evengoed.

Offline  RSO
Gepost op: 20 mei 2006 - 12:06
HTML interesse



Ik zie het bedankt voor de tip 

Offline  ece
Gepost op: 20 mei 2006 - 16:41
HTML interesse



Idd leuk script en handig.
1. Foutje.
Citaat:
stel je wil de faculteit van 5, dan doen je: 1 x 2 x 3 x 4 x 5 = 120

Goede manier.
Citaat:
stel je wil de faculteit van 5, dan doe je: 1 x 2 x 3 x 4 x 5 = 120

Offline  Button
Gepost op: 21 mei 2006 - 15:05
PHP ver gevorderde



http://www.phpf...amp;page=2
ik beschuldig je van niets...

Offline  Richard
Gepost op: 21 mei 2006 - 15:54
Crew algemeen



Het ziet er wel handig uit;-)

maar... met een for lus gaat het sneller:

  1. <?php
  2. function faculty ($n)
  3. {
  4. $r = $n--;
  5.  
  6. for (; $n >= 1; --$n)
  7. {
  8. $r *= $n;
  9. }
  10.  
  11. return $r;
  12. }
  13. ?>


Recursieve functies zijn namelijk niet de snelste;-)

verschi:

met recursieve functie: float(0.000810861587524)
met for: float(0.000120878219604)

Valt dus best wel mee;-)

Offline  RSO
Gepost op: 21 mei 2006 - 16:27
HTML interesse



Citaat:
[I][B]ButtonMan[/B] schreef op 21 Mei 2006 - 15:05[/I]

http://www.phpf...amp;page=2
ik beschuldig je van niets...


Ik had het al in gedachten, en toen zocht ik op google en vond ik deze, en aangezien deze manier mij iets beter leek dan mijn eigen heb ik deze gebruikt in mijn script

Offline  Button
Gepost op: 21 mei 2006 - 17:50
PHP ver gevorderde



ik zei het je, ik beschuldig je van niets, maar miss had je toch een kleine vermelding moeten maken voor het eerste stuk van je script

Offline  RSO
Gepost op: 21 mei 2006 - 18:07
HTML interesse



Fixed

Offline  Frederic
Gepost op: 21 mei 2006 - 22:45
PHP ver gevorderde



Citaat:
echo "Te groot getal, hoger dan 170 kan ik helaas niet aan";

En waarom niet? 

Offline  RSO
Gepost op: 21 mei 2006 - 22:48
HTML interesse



dan geeft ie als antwoord: INF

Offline  Frederic
Gepost op: 22 mei 2006 - 17:49
PHP ver gevorderde



Je checkt nergens of het wel degelijk een numeriek iets is, zou je dat niet doen?

Offline  RSO
Gepost op: 22 mei 2006 - 17:55
HTML interesse



dat zou inderdaad kunnen en handig zijn, maar ik vertrouw er op dit moment op dat niemand letters of leestekens invoerd. Misschien dat ik dat nog wel toevoeg

EDIT
Speciaal voor de liefhebbers controleert hij nu of je wel een getal invoerd

Offline  Richard
Gepost op: 23 mei 2006 - 07:59
Crew algemeen



checken of iets een getal is doe je met PHP.net: ctype_digit, niet met ereg:o

Offline  RSO
Gepost op: 23 mei 2006 - 08:11
HTML interesse



Bedankt voor de tip... maar dat wat ik deed werkte toch ook gewoon?

Offline  Richard
Gepost op: 23 mei 2006 - 18:31
Crew algemeen



ja het werkt wel gewoon, maar het is veel omslachtiger dan een (veel snellere) functie die ervoor bedoeld is;-)

Offline  RSO
Gepost op: 23 mei 2006 - 19:26
HTML interesse



achja, bedankt, ik heb dr weer wat door geleerd en daar gaat het vgm om 

Offline  nemesiskoen
Gepost op: 24 mei 2006 - 07:52
Gouden medaille

PHP expert




@JeXuS: volgens mij zie jij het bos door de bomen niet meer.
De for loop kent 3 argumenten. Ja er is een 2-argumenten, 1-argument en 0-argument variant. Maar waarom zou je niet gebruik maken van het eerste argument als je dit _toch_ nodig hebt.

Dit dient om een 'beginsituatie' aan te geven. Wat is je eerste stap in je script: een beginsituatie.

Preincrement is ook nergens voor nodig en het derde argument dient om een actie uit te voeren. Aangezien je maar 1 actie uitvoert in je for-loop kan je deze als derde argument meegeven.

  1. function faculty ($n) {
  2. for ($r = $n--; $n >= 1; $r *= $n--);
  3. return $r;
  4. }

Offline  Richard
Gepost op: 24 mei 2006 - 08:14
Crew algemeen



denk je dat ik meteen een perfect script schreef? ik maakte het snel om een voorbeeld te geven zoals hoe t met een for loop kan.

maarja, aangezien jij toch altijd alles beter denkt te weten, waarom zou ik dan ooit nog commentaar ergens op geven?

Offline  nemesiskoen
Gepost op: 24 mei 2006 - 10:33
Gouden medaille

PHP expert




Je moet niet direct alles persoonlijk opnemen wat ik zeg. Ik versta gewoon niet waarom je de standaard for-loop vervangt door een variant als dit nergens voor nodig is. Als jij zaken wil verbeteren heb ik hier toch net zo goed recht op?
Er is een verschil tussen kritiek en opbouwende commentaar.


Enkel aanvullende informatie, vragen en antwoorden op vragen zijn welkom.
 
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.038s