WN

WN (https://www.wn.se/forum/index.php)
-   Allmänt (https://www.wn.se/forum/forumdisplay.php?f=2)
-   -   10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1 (https://www.wn.se/forum/showthread.php?t=38430)

radioaktivitet 2009-08-12 12:22

Se rubriken. Jag behöver kunna ta valfritt tal och räkna på detta sätt.

Visst man kan göra en loop

$valfritt_tal = 100;
$resultat = 0;
for ($i = $valfritt_tal; $i > 0; $i--) {
$resultat = $resultat * $i;
}

Men visst finns det väl redan en operator för detta i de flesta språk?

Erik Stenman 2009-08-12 12:28

Kallas fakultet men jag är osäker om det finns någon operator i php. Inom matematiken använder man iaf tex: 5! = 1*2*3*4*5 = 120

Här har du en funktion:

function factorial($number) {
if ($number == 0) return 1;
return $number * factorial($number - 1);
}

radioaktivitet 2009-08-12 18:30

Tack!!

vco-systems 2009-08-12 20:35

Citat:

Originally posted by radioaktivitet@Aug 12 2009, 12:22
Se rubriken. Jag behöver kunna ta valfritt tal och räkna på detta sätt.
Visst man kan göra en loop
valfritt_tal = 100;
resultat = 0;
for (i = valfritt_tal; i 0; i--) {
resultat = resultat * i;
}
Men visst finns det väl redan en operator för detta i de flesta språk?

Ditt exempel kommer inte att fungera då 100! är ca 9.3*10^157 :)

Conny Westh 2009-08-13 19:40

Fakulteter blir snabbt extremt stora tal, vad är det egentligen du vill uppnå? Vadvill du egentligen göra?

Johan_S 2009-08-13 20:36

Citat:

Originally posted by ConnyWesth@Aug 13 2009, 19:40
Fakulteter blir snabbt extremt stora tal, vad är det egentligen du vill uppnå? Vadvill du egentligen göra?
Också lite nyfiken. Kanske några mer avancerade taylorutvecklingar eller liknande? Vad ska herrn approximera? :o

Draqir 2009-08-13 20:50

Citat:

Ursprungligen postat av vco-systems
Citat:

Ursprungligen postat av radioaktivitet
Se rubriken. Jag behöver kunna ta valfritt tal och räkna på detta sätt.
Visst man kan göra en loop
valfritt_tal = 100;
resultat = 0;
for (i = valfritt_tal; i *0; i--) {
resultat = resultat * i;
}
Men visst finns det väl redan en operator för detta i de flesta språk?

Ditt exempel kommer inte att fungera då 100! är ca 9.3*10^157 :)

Nja hans algoritm kommer inte fungera eftersom den hela tiden kommer att vara noll.

radioaktivitet 2009-08-13 22:54

Attans. Jag skrev fel!!

Jag vill addera talen, inte multiplicera

Det skall alltså vara 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1

Erik Stenman 2009-08-14 01:17

Ok. Kallas triangeltal och formeln för att räkna ut det är N(N+1)/2
Där N såklart är det största talet.


Alla tider är GMT +2. Klockan är nu 20:01.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson