I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
function factorial(x) { for(i = x - 1; i > 1; i--) // loop'en skal afvikles, så længe tælleren ("i") er større end 1 { x = x * i; // tag den nuværende værdi og gang den med tælleren } return x; // returner værdier }
Man kunne også skrive "i > 0", men da et tal ganget med "1", giver selve tallet, er der ingen grund til at afvikle loop'en igen.. det undgår man ved at skrive "i > 1"..
Tak, men der hvor den glipper lidt for mig (kender godt n! :)), er nok omkring return x * factorial(x-1); :)
Det at den kalder factorial-funktionen igen, forvirrer mig fordi kaldet kommer i return statementet. Det er jo i virkeligheden (eller i tankens verden måske rettere), lidt som en streng der bliver sat sammen løbende, kan man sige det sådan?
returner x gange hvad-end-der-kommer-retur-af-kaldet "factorial( nuværende-x-minus-en)"
Dvs, den venter faktisk på hvad end det er der kommer retur, før den returnere noget.
Men inden den overhovedet returnerer noget, bliver sammelinie kaldt, bare hvor x er blever 1-tal lavere.
Sådan bliver den ved med, indtil koden "return x * factorial(x-1);" ikke længere bliver kaldt, hvorefter den begynder at returnerer værdierne, i omvendt rækkefølge af kaldene..
Måske kan det her hjælpe:
<html> <head> <script type="text/javascript">
var s = ""; var t = 0;
function factorial(x) { s += "x: " + x + "\n"; if (x <= 1) return 1;
t = x * factorial(x-1); s += "return: " + t + "\n"; return t; //x * factorial(x-1); } </script>
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.