+1 Daumen
1,1k Aufrufe

Ich habe den Maschinenzahlbereich F=F(2,5,-3,3) gegeben. Nun versuche ich zwei Zahlen a,b∈[Fmin,Fmax] mit a*b∈[Fmin,Fmax] und Rundungen a', b' derart zu finden, so dass diese Bedingungen erfüllt sind:

$$ a ≠ a',  \quad b ≠ b',  \quad a \cdot b=a' \cdot  b' $$

Ich weiß, dass hier Fmin=0,125 und Fmax=15,5 lauten müssen, so dass ich einen noch recht überschaubaren Bereich hätte.

Nach etlichem Rumprobieren finde ich aber einfach keine richtigen Zahlen, die alle Bedingungen (vorallem die dritte) erfüllen. Jede Rundung hätte ja hier diese Darstellung: $$  z'=(1,xxxx)_2\cdot 2^E $$, wobei an den Stellen x 0 oder 1 stehen kann (auch mehrmals). Dann ließe sich die dritte Bedingung auch so schreiben:

$$ a\cdot b= \underbrace{(1,xxxx)_2\cdot 2^{E_a}}_{a'}\cdot \underbrace{(1,xxxx)_2\cdot 2^{E_b}}_{b'}$$

Aber hier hätte ich ja schon alleine für die Stellen x 8^8 Möglichkeiten, was verdammt hoch ist. Und eh ich all diese Möglichkeiten durchgenommen hätte, würden Tage vergehen. Wie kann ich das klüger mit der Suche anstellen? Was ich aber schonmal von meiner Seite aus darüber sagen würde ist, dass die Zahlen a und b in der binären Darstellung periodisch sein müssen, weil es sonst passieren kann, dass die Rundungen a', b' gleich a, b sind.

Avatar von

1 Antwort

+5 Daumen
 
Beste Antwort

Hallo hallo97,

Wie kann ich das klüger mit der Suche anstellen?

Nehme zwei von 2 verschiedene Primzahlen und bilde daraus zwei rationale Zahlen deren Produkt \(=1\) ist:$$\frac 35 \cdot \frac 53 = 1$$Jetzt noch zwei rationale Zahlen \(a\) und \(b\) wählen, die selbst und ihr Produkt in dem gewünschten Bereich liegen und die im Nenner nur einen Ausdruck \(2^n\) stehen haben - z.B.:$$ a \cdot b = \frac{11}{8} \cdot \frac{7}{4} = \frac{77}{32} = 2,40625$$Die Zähler müssen dabei so gewählt werden, dass die oben gewählten Primzahlen keine Teiler der Zähler sind. Jetzt die jeweils kleinere mit der größeren aus dem ersten Paar multiplizieren und umgekehrt:$$a' = \frac {11}8 \cdot \frac 53 = \frac {55}{24} \approx 2,291667, \quad b' = \frac{7}{4} \cdot \frac 35 = \frac{21}{20} = 1,05$$Die Produkte sind sicher identisch, da das Produkt letztlich mit 1 multipliziert wurde, und \(a'\) und \(b'\) müssen gerundet werden, da sie nicht exakt im Format IEEE754 abgebildet werden können.

Sollten \(a\) und \(b\) die Rundungen von \(a'\) und \(b'\) sein, so kannst Du statt 3 und 5 zwei sehr große Primzahlzwillinge wählen. Aber das führt ja in der binären Darstellung zu \(a=\text{round}(a')\) bzw. \(b=\text{round}(b')\), und das macht keinen Sinn, wie Du schon erwähnt hast.

Avatar von

Danke! Darauf wäre ich nie gekommen.

Ein anderes Problem?

Stell deine Frage

Ähnliche Fragen

0 Daumen
1 Antwort
0 Daumen
2 Antworten

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community