Passende Programmiersprache

ENJAY

Newbie
Registriert
Jan. 2017
Beiträge
2
Guten Tag,
ich bin ganz neu hier, nur um eine bestimmte Frage beantwortet zu bekommen, da ich denke, dass diese Frage nirgendwo gestellt wurde.

Die Frage ist, welche Programmiersprache zu Folgendem am besten geeignet wäre:


  • Die Ausführung einer Schleife, in der die Schleife, Werte zwischen 0 und 1 mit jeweils 30 Nachkommastellen ausgibt.
    Hab's mal mit PHP versucht, aber das dauerte zu lange und stürzte dann nach einer Zeit ab.

Ist es überhaupt möglich, diese Schleife komplett ausführen zu lassen?

Mit freundlichen Grüßen
 
Zuletzt bearbeitet:
<?php
for($i = 0; $i <= 1; $i = $i + 0.000000000000000000000000000001)

echo "$i<br />";
?>

Zeigt mir zwar nicht die kompletten 30 Nachkommastellen an, aber diente mir nur als Test.
Wenn es schon so abstürzt, dann auch, wenn die 30 Nachkommastellen ausgeschrieben sind (?)
 
Also mit c geht das meines Wissens, nur nicht mit den normalen Datentypen. In der Regel brauchst du dafür mathematische bibs die auf Integer aufbauen, sofern ich mich recht erinnere.
 
Das scheitert an zwei Punkten. Erstens hast du mit normalen Fließkommazahlen an der 30. Nachkommastelle längst keine Genauigkeit mehr, da müsstest du schon sowas wie bcadd verwenden. Ansonsten: hast du dir mal überlegt, wie viele Durchläufe die Schleife machen müsste? Das sind 10^30, oder 1000000000000000000000000000000, oder eine Quintillion.

Ich glaube, dir ist gar nicht klar, was du da überhaupt tun willst. Würdest du alle diese Zahlen in einem Textdokument als UTF8 speichern wollen, dann bräuchtest du 3,2 * 10^15 Petabytes.
 
Zuletzt bearbeitet:
Im Kontext meines Vorredners müsste auch mal gefragt werden, was das Ganze soll. ;)

Hab's mal mit PHP versucht, aber das dauerte zu lange und stürzte dann nach einer Zeit ab.

Steht ebenfalls mit dem über mir geschriebenen im direkten Zusammenhang: Das wird in jeder Sprache dauern, sind halt verdammt viele Iterationen.
 
Ich würde auch sagen, du brauchst auf jeden Fall Unterstützung für 128bit-Fließkommazahlen. Zu berücksichtigen ist auch, dass du ja immerhin ca. 1030 Zahlen ausgeben willst, bei 128bit pro Zahl ist das immerhin eine Datenmenge von 14,5 Trillionen Terabyte. Halte ich jetzt, auch wenn es einfach klingt, erstmal für nicht ganz trivial.
 
Aus meiner Sicht ist eine Schleife die Schritte in mit Nachkommastellen ausführt auch ein schlechtes Design. Die Schritte sollten ganzzahlig sein. Wenn für die Ausgabe ein anderes Format/Notation benötigt wird, kann dort immer noch umgerechnet werden.
 
Wenn du trotz allem noch weitermachen möchtest würde ich empfehlen zumindest auf Python mit dem bigloat package oder C++ mit der Boost library zu setzen. Wenn du Oldschool magst unterstützt bspw. Fortran quadruple-precision nativ.

Die Schritte sollten ganzzahlig sein. Wenn für die Ausgabe ein anderes Format/Notation benötigt wird, kann dort immer noch umgerechnet werden.

Da stimme ich absolut zu. Besser wäre es ein ganzzahliges i zu verwenden und zur Ausgabe den Anforderungen entsprechend zu dividieren oder mit dem passenden *10^x in der Ausgabe zu versehen.
 
Zuletzt bearbeitet:
Zurück
Oben