Hallo!
Mal angenommen es programmiert jemad Fortran:
macht es einen Geschwindigkeitsunterschied ob ich
x=22/7*a
oder
x=3.14287*a
verwende?
Tschüss.
Hallo!
Mal angenommen es programmiert jemad Fortran:
macht es einen Geschwindigkeitsunterschied ob ich
x=22/7*a
oder
x=3.14287*a
verwende?
Tschüss.
Hi,
macht es einen Geschwindigkeitsunterschied ob ich
x=22/7*a oder x=3.14287*a verwende?
wie so oft: Die Frage provoziert Überlegungen, die eine Antwort auf eine ganz andere Frage ergeben…Also:
Niemand wird so etwas codieren. In dem Beispiel ist a eine Variable, die mit einer Konstanten multipliziert werden soll. Dazu legt der Programmierer die Konstante als Variable ab, weist ihr ein einziges Mal einen Wert zu und multipliziert jedes neue a mit k. Im Programmtext sähe das so aus (nicht unbedingt Fortran):
/\* Vereinbarung der Konstanten \*/
k = 3.14287;
e = 2.71828;
ln2 = 0.69315;
...
/\* Programmablauf \*/
Get a;
Do while (not EoF);
z = a \* k;
Put z;
Get a;
End;
...
Wie man leicht sieht, ist es also wurscht, ob du k den Zahlenwert zuweist oder den Bruch, da die Zweisung nur einmal ausgeführt wird.
Gruß Ralf
macht es einen Geschwindigkeitsunterschied ob ich
x=22/7*a
oder
x=3.14287*a
verwende?
unabhaengig vom bereits gefragten, und ohne spezielle fortrannotation zu kennen:
sollte nicht variante 1 mindestens die zeit einer division laenger benoetigen?
Simple Optimizing
Hi,
sollte nicht variante 1 mindestens die zeit einer division
laenger benoetigen?
das muss nicht sein. Es gibt Compiler, die aus der Division zweier Konstanten eine neue Konstante machen und mit dieser weiterrechnen.
Gruß Ralf
Hallo,
Mal angenommen es programmiert jemad Fortran:
probieren?
for a=0 to 10000 step 0.01
x=22/7*a
next
Die Stoppuhr verrät Dir, obe es einen Unterschied gibt.
cu Rainer