#i1.4142135623730951 als ausgabe für wurzel 2

Benutzeravatar
Maradatscha
Computerversteher
Computerversteher
Beiträge: 353
Registriert: 2. Okt 2006 18:53

#i1.4142135623730951 als ausgabe für wurzel 2

Beitrag von Maradatscha »

Bei meinem pq formel programm gibt mir scheme für wurzel 2 die ausgabe #i1.4142135623730951
ist das ne scheme spezifische darstellung dass er die zahl gerundet hat oder was will er mir damit mitteilen?

Benutzeravatar
seth2k1
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 153
Registriert: 29. Sep 2006 00:53
Wohnort: Darmstadt - Eberstadt

Beitrag von seth2k1 »

jop, bei ner negativen wurzel hätteste hinten auch noch ein i
"Hallo, ich verkaufe diese modischen Lederjacken!"

Benutzeravatar
Tapion
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 220
Registriert: 14. Okt 2006 19:16
Wohnort: Darmstadt

Beitrag von Tapion »

Wir dachten zuerst, dass dieses #i imaginär bedeuten soll.... hat uns viel Zeit gekostet herauszufinden, dass #i<Zahl> für irrational steht.

imaginär sieht z.B: so aus:
#i0+1.2637481539515
WS 2010/11 - Tutor GDI 1
SS 2010 - Tutor FGI 1+2

Benutzeravatar
Maradatscha
Computerversteher
Computerversteher
Beiträge: 353
Registriert: 2. Okt 2006 18:53

Beitrag von Maradatscha »

das is gut dann lass ich das einfach so stehen

Siggi
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 101
Registriert: 15. Okt 2006 12:46

Beitrag von Siggi »

Also diese Zahlen sind dann bei der Hausübung erlaubt.
Nur die #i <zahl>i sollen durch die Fehlermeldung abgefangen werden.

Hab ich das so richtig verstanden?

Benutzeravatar
Maradatscha
Computerversteher
Computerversteher
Beiträge: 353
Registriert: 2. Okt 2006 18:53

Beitrag von Maradatscha »

so hab ich das auch verstanden

Benutzeravatar
Tapion
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 220
Registriert: 14. Okt 2006 19:16
Wohnort: Darmstadt

Beitrag von Tapion »

wobei du dich bei der abfrage nicht unbedingt um das ergebnis aus der Wurzel kümmern musst. unter welchen bedingungen wird die wurzel denn imaginär? ;)
WS 2010/11 - Tutor GDI 1
SS 2010 - Tutor FGI 1+2

Benutzeravatar
seth2k1
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 153
Registriert: 29. Sep 2006 00:53
Wohnort: Darmstadt - Eberstadt

Beitrag von seth2k1 »

der fall kann bei der aufgabenstellung eigentlich garnicht erst auftreten...
"Hallo, ich verkaufe diese modischen Lederjacken!"

Benutzeravatar
Tapion
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 220
Registriert: 14. Okt 2006 19:16
Wohnort: Darmstadt

Beitrag von Tapion »

Natürlich kann er das. Er muss es sogar. Schließlich soll in dem Fall 'negative_squareroot ausgegeben werden.
WS 2010/11 - Tutor GDI 1
SS 2010 - Tutor FGI 1+2

Benutzeravatar
marlic
Computerversteher
Computerversteher
Beiträge: 365
Registriert: 5. Okt 2006 11:09
Wohnort: Dietesheim

Beitrag von marlic »

Ich denke dieses #i1.4142135623730951 weist darauf hin, dass es sich bei sqrt(2) um eine irrationale Zahl handelt, was darauf hindeutet, dass Scheme mit symbolischen werten für diese Zahlen rechnet und nicht einfach an irgendeiner Stelle rundet.

Scheme kann übrigens auch mit Periodischen Darstellungen rechnen ... (/ 1 3) gibt nämlich 0,3 (und über der drei ein Strich) aus.
"Copy & Passed"

Wahlspruch der Plagiatoren

Benutzeravatar
viktor
Windoof-User
Windoof-User
Beiträge: 26
Registriert: 7. Nov 2004 23:44

Beitrag von viktor »

http://www.htdp.org/2003-09-26/Book/cur ... Z-H-5.html sagt,
dass die #i fuer Inexact Number steht:

Code: Alles auswählen

A Note on Numbers: Scheme computes with EXACT integers and rationals as long as we use primitive operations that produce exact results. Thus, it displays the result of (/ 44 14) as 22/7. Unfortunately, Scheme and other programming languages compromise as far as real numbers are concerned. For example, since the square root of 2 is not a rational but a real number, Scheme uses an INEXACT NUMBER: 
  (sqrt 2)
= #i1.4142135623731

The #i notation warns the programmer that the result is an approximation of the true number. Once an inexact number has become a part of a calculation, the process continues in an approximate manner. To wit: 
  (- #i1.0 #i0.9)
= #i0.09999999999999998

but 
  (- #i1000.0 #i999.9)
= #i0.10000000000002274

even though we know from mathematics that both differences should be 0.1 and equal. Once numbers are inexact, caution is necessary.

Gruesse,
Vik

Antworten

Zurück zu „Archiv“