Basis und Exponent zu Potenz finden

Hi!
Ja, die Lösung oben ist nicht schlecht. Aber entschuldige: Man merkt, dass du anscheinend Informatiker bist ;o) Ich bin sehr präzise geworden und mit so ner Lösung wär ich überhaupt nicht zufrieden, viel zu unelegant :smiley:
Das Problem ist eben das mit dem Rest. Der ist zu uneindeutig. Es gibt bestimmt ne Lösung, aber im Moment komm ich noch nicht dahinter. Ist das dringend? Steck nämlich grad noch so intensiv in den Endjahres-Vorbereitungen, dein Problem interessiert mich aber schon sehr. Ich hätt große Lust mich da mal richtig ranzusetzen und mit einigen Methoden zu schauen. Zum modularen: http://de.wikipedia.org/wiki/Restklas
So kannst du dir das vorstellen.
Also, muss das jetzt gleich sein oder hab ich noch ein wenig Zeit? :o)

Viele Grüße!
Christina

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

LOL
Hallo,

Ja, die Lösung oben ist nicht schlecht. Aber entschuldige: Man
merkt, dass du anscheinend Informatiker bist ;o) Ich bin sehr
präzise geworden und mit so ner Lösung wär ich überhaupt nicht
zufrieden, viel zu unelegant :smiley:

Tja, trafen sich ein(e) Mathematiker(in), ein Informatiker und ein Ingenieur…

Meine Vorgehensweise von oben ist eigentlich mathematisch korrekt; wie man dann mit dem Rest umgeht, ist ne andere Geschichte. Den Quelltext kann man auch in scilab (kostenlos) eingeben, sollte funktionieren. Man müsste nur am Abbruckkriterium noch arbeiten:
Bisher tritt das AK ein, wenn der Rest vom Wert her gegenüber der Ausgangszahl klein ist. Wichtig ist aber eigentlich nicht, ob der Wert klein ist, sondern, ob der Rest in einer genügend kleinen Speichereinheit geschrieben werden kann. D.h. man kann einen Rest von 24 sehr leicht und kompakt schreiben, während 0.3215005410055 eher mehr Platz verbrauchen würde…

Was man jetzt braucht ist ein konsequentes Abbruchkriterium, das man mathematisch nachvollziehen kann, ohne es extra ständig modellieren zu müssen (also Speicherplatzverbrauch irgendwie berechnen…).

Gruss, Omar Abo-Namous

aber ich verstehe sie noch nicht so wirklich :frowning: Kann sie auch nicht
ausprobieren,weil ich kein MathLab habe.

Hallo,

du kannst den Quelltext in scilab ausprobieren, das gibt es kostenlos:
http://scilabsoft.inria.fr/

Dann musst du aber auf die ganzen disp()s verzichten, ich weiss nicht, wie die unter scilab zum laufen gebracht werden…

Gruss, Omar Abo-Namous

Hi!
Ich halte es wie Gauß (nein, nein, kein Vergleich, Gott bewahre!):
Das ist mir nicht natürlich genug :wink:
Etwas, was ein Abbruchkriterium brauch kann doch nicht vollends präzise sein…
Aber echt ne nette Kombination in diesem Thread :smiley:

Viele Grüße und schönen Abend noch!
Christina

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,
Mir war nicht bewusst,dass es so offensichtlich ist das ich
Informatiker bin*g*.Ich finde es klasse,dass du dich so reinhängst
für die Sache.Perfektion ist dir wohl sehr wichtig. Als Informatiker
achte ich einfach darauf,dass es irgendwie funktioniert.Natürlich ist
eine elegante und perfekte Lösung besser und ich würde mich sehr
freuen,wenn du so etwas schaffen könntest.Ich wäre dir wirklich
dankbar :smile:

Viele Grüße

Informatics

du kannst den Quelltext in scilab ausprobieren, das gibt es
kostenlos:
http://scilabsoft.inria.fr/

Danke,
ich lade es mir eben herrunter :smile:

Viele Grüße

Informatics

Hallo Informatics,

Ich möchte große Zahlen(ca. 300 Stellen) platzsparender
darstellen
bzw. abspeichern.

  1. wenn du die Zahlen nicht als Zahl, sondern als Bitmuster betrachstest, kannst du dich mal über verlustlose KOmprimierung informieren (Huffmann, Ziff-Lempel …)

  2. Wenn die Werte nahe beieinander liegen, könnte man sie sortieren und ausser der ersten Zahl immer nur die Differenz abspeichern.

MfG Peter(TOO)

Hallo,
wie schon per Mail adressiert : Der Wechsel vom Dezimalsystem (hier 300 Stellen) auf ein System höheren Grades G reduziert den Stellenbedarf auf N Stellen nach der Formel
N = 300 / log(G)
Für das Hexadezimal mit G=16 käme man hier mit N=250 Stellen aus,
nähme man ein 40-er-System (30 Buchstaben + 10 Ziffern) wärens nur noch 187 Stellen. Ein Hunderter-System halbiert die notwendigen Stellen.
Die Systeme bilden exakt ab, d.h. keine „Verluste“.
Gruß
Karl

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,
Also ich habe gerade so meine Probleme mit SCIlab :frowning:
SCIlab gibt mir Fehler zurück,dass ich die Variablen erst definieren
muss. Im Fall der Variable index habe ich dies dann mit index=0;
getan,da es ja keine allgemeine Definition für Variablen wie z.B int
variable gibt.Könntest du deinen Quelltext vielleicht einmal in
SCIlab ausprobieren?Ich krieg die Anpassungen nicht hin :frowning: Nebenbei
DISP als Ausgabefunktion arbeitet super.

Viele Grüße und Dank

Informatics

Hallo,

Also ich habe gerade so meine Probleme mit SCIlab :frowning:
SCIlab gibt mir Fehler zurück,dass ich die Variablen erst
definieren
muss. Im Fall der Variable index habe ich dies dann mit
index=0;
getan,da es ja keine allgemeine Definition für Variablen wie
z.B int
variable gibt.Könntest du deinen Quelltext vielleicht einmal
in
SCIlab ausprobieren?Ich krieg die Anpassungen nicht hin :frowning:
Nebenbei
DISP als Ausgabefunktion arbeitet super.

Viele Grüße und Dank

Informatics

Hier ist ein Quelltext, der bei mir funktioniert. Zur Ausgabe: bei mir macht disp manchmal Probleme, weiss nicht woran das liegt. Deshalb werden einfach 4 Zahlen hintereinander ausgegeben:
Basis,Exponent,absoluter Rest,relativer „Rest“

Hoffe das hilft!

Gruss, Omar Abo-Namous

Hallo,
Und Danke erst mal aber…

Hier ist ein Quelltext, der bei mir funktioniert.

Wo ist der Quelltext?*g* Ich hätte erwartet,dass er sich in dieser
Nachricht befindet :frowning: Hast du ihn vielleicht vergessen einzufügen?

Viele Grüße und Danke

Informatics

oops
Hier:

z=input('Geben Sie die gesuchte Zahl ein: ');
disp(['Eingegebene Zahl: ' string(z)]);
ende=0;
index=0;
tol=0.0000001;
i=1;
while(ende==0)
 i=i+0.01;
 index=round(i\*100);
 y(index)=log(z)/log(i);
 ry(index)=round(y(index)\*10000)/10000;
 wert(index)=abs((z-i^ry(index)))/z;
 rest(index)=z-(i^ry(index));
 if wert(index)

Gruss, Omar Abo-Namous


> <small>[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]</small>

Schon mal an folgendes gedacht:
Der Informationsgehalt einer Zahl ist die Zahl ihrer Bits, bei 300 Stellen dezimal rund 1000 Bit. Das Universum verliert jedoch nach derzeitiger Erkenntnis keine Information (Erhaltung der Entropie). Nachdem Stephen Hawking kürzlich seine Meinung geändert hat, sind auch die letzten (schwarzen) Löcher gestopft.

Die Frage richtet sich also auf eine Art informatorisches Perpetuum Mobile. Ein klassisches PM würde der Thermodynamik widersprechen - das ist im strenegen Sinn kein Beweis, das es so etwas nicht gibt, sagt aber aus, dass die Existenz eines Perpetuum Mobiles unser Weltbild über den Haufen werfen würde.

In gleicher Weise würde ein für alle Zahlen gültiges Verfahren, das den Informationsgehalt der Zahl reduziert, dem Satz von der Erhaltung der Entropie widersprechen und damit das gegenwärtig gültige physikalische Weltbild weitgehend für ungültig erklären.

Viel Spass bei der weiteren Suche nach einer Lösung. Übrigens wurde das Verfahren in einem Science-Fiction-Roman erwähnt unter der bezeichnung „Gödelisierung“. Ich weiss aber nicht, ob sich Gödel damit beschäftigt hat, zuzutrauen wäre es ihm.

Reinhard

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,
Danke für den interessanten Beitrag.Gödelisierung hört sich
interessant an. Aber wie es aussieht ist es zur Zeit nur Science
Fiction :frowning: Dann ist es wohl aussichtslos, ein allgemein gültiges
Verfahren zu suchen. Wobei wäre eine tolle Lebensaufgabe *g*

Viele Grüße

Informatics

Hallo,
Danke für den Quelltext. Es funktioniert gut. Bei einigen Zahlen
sogar extrem gut. Aber wenn ich mir den Post ganz oben durchlese
verliere ich doch etwas die Hoffnung, das man dies in der Praxis
einsetzen kann.

Viele Grüße

Informatics

Hallo,
Danke für den Quelltext. Es funktioniert gut. Bei einigen
Zahlen
sogar extrem gut. Aber wenn ich mir den Post ganz oben
durchlese
verliere ich doch etwas die Hoffnung, das man dies in der
Praxis
einsetzen kann.

nochmal: wenn du keinen fehler zulassen willst, wird das nichts mit dieser Methode, es sei denn du findest einen einfachen Algorithmus, der dir sagt, wie gross (in Stellen) eine Zahl ist. Denn dann kann man als Ziel des Algorithmus die Verkleinerung des Rests (auf Basis der Stellen) angeben. Aber wenn du „naturwissenschaftlich“ vorgehen willst und eine gewisse Toleranzgrenze (die nicht unüblich ist) verträgst, sollte das weiterhelfen.

Gruss, Omar