Quote:
Originally Posted by | Moep |
Btw. wäre in dem Fall nicht ein rekursiver funktionsaufruf der performanteste?!
|
das problem ist das autoit bei rekursion extrem beschränkt ist. man kann eine rekursion nur genau 3898 mal ausführen. sobald diese anzahl an wiederholungen überschritten wurde, bekommt man die fehlermeldung:
Code:
Recursion level has been exceeded - AutoIt will quit to prevent stack overflow
ansonsten hättest du aber recht... hier mal vergleichsscript mit beispielzeiten:
Code:
Global $i, $a, $w = 3898
$t = TimerInit()
For $i=1 To $w
$a = 1
Next
ConsoleWrite('for schleife: '&TimerDiff($t)&@CRLF)
$i = 1
$t = TimerInit()
rekursiv($i)
ConsoleWrite('rekursion: '&TimerDiff($t)&@CRLF)
Func rekursiv($i)
If $i > $w Then Return 1
$a = 1
$i += 1
Return rekursiv($i)
EndFunc
ergibt zeiten:
Code:
for schleife: 50.1172635069541
rekursion: 37.0999666158688
Quote:
Originally Posted by omer36
€um es genauer zu sagen, habe ich 644 primzahlen genommen, weil mehr in eine zeile nicht rein passen und eine fehlermeldung kommt  und die müssten ja wohl erstmal reichen... ^^
|
wie gesagt die maximale zeilenlänge beträgt 4096 zeichen in autoit =)
man kann das ganze aber auch trennen mit "_" =)
Quote:
Originally Posted by | Moep |
LeechTime..
Interresant wie das Problem hier geöst wurde  :

|
von der eigenständigen bestimmung von primzahlen würde ich doch abraten, da für solche komplexen aufgaben autoit wirklich mehr als nur ungeeignet ist :P
und da autoit zu große zahlen sowieso nicht handeln kann sind auch 600 primzahlen schon mehr als genug =)