Hallo,
also die Bemerkung "fast keine Zeit verbraucht" is
ja wohl
ein Witz, man probiere
SetAttributes[myPart, HoldFirst]
myPart[a_, i_Integer] := a[[i + 1]]
SetAttributes[udoPart, HoldFirst]
udoPart[a_, i_Integer] := First[RotateLeft[a, i]]
Timing[
Table[
k = Random[Integer, {0, Length[test] - 1}];
myPart[test, k], {100000}
]
] // First
im Gegensatz zu
Timing[
Table[
k = Random[Integer, {0, Length[test] - 1}];
udoPart[test, k], {100000}
]
] // First
das Erste dauer bei mir 1.266 Sekunden, die
Version mit
RotateLeft[] is nach unglaublichen 144.14 Sekunden
fertig.
Gruß
Jens
----- Original Message -----
From: "Nowak Robert" <robert.nowak@XXXXXXX.at>
To: "Udo und Susanne Krause"
<su.krause@XXXXXXX.ch>; "Jens-Peer Kuska"
<kuska@XXXXXXX.de>
Cc: "Richard Gollreiter" <RGollreiter@XXXXXXX.de>;
<demug@XXXXXXX.ch>
Sent: Monday, March 13, 2006 12:05 PM
Subject: RE: Antwort: Re: Indizierung von Tables
mit Null beginnen.
| hallo udo,
|
| > Part /: Part[x_List, n_Integer] :=
First[RotateLeft[x, n]]
|
| wie funktioniert deine lösung eigentlich, wieso
wird für das rotieren scheinbar keine zeit
verbraucht ?
| wird das array nur ein einziges mal rotiert und
bei den individuellen zugriffen nicht mehr wenn
ja, wodurch ?
|
| l.g. robert
|