Frühere |
||||
Vorherige |
|
Liebe Freundinnen und Freunde von Zahlendarstellungen,man fertige eine Funktion und ihre notwendigen Hilfsfunktionen, um in einer Darstellung der natürlichen Zahl x zur Basis b > 1 alle b durch b + 1 zu ersetzen. Man beachte: Die Koeffizienten enthalten b nicht, da sie aus {0, b - 1} sind, aber die Potenzen der Basis können b enthalten : x = 2 3^8 + 3^5 = 2 3^(2 * 3 + 2) + 3^(3 + 2) -> 2 4^(2 * 4 + 2) + 4^(4 + 2)
also
{3, {0, 0, 0, 0, 0, 1, 0, 0, 2}} -> {4, {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2}},
mit anderen Worten
In[17]:= 2 3^8 + 3^5
Out[17]= 13365
In[18]:= 2 4^(2 * 4 + 2) + 4^(4 + 2)
Out[18]= 2101248
In[27]:= deciS[baseS[3, 13365]]
Out[27]= 13365
In[28]:= deciS[hase[baseS[3, 13365]]]
Out[28]= 2101248
Die gesuchte Funktion heisst im Beispiel hase[]. baseS[b, x] wandelt x in
die Darstellung zur Basis b um und deciS[] erzeugt daraus zu
Kontrollzwecken die Dezimaldarstellung:
In[30]:= deciS[baseS[Prime[123], 10^9]] Out[30]= 1000000000 Ein anderes Beispiel (zur Basis 2) ist 2^8 = 2^2^(2 + 1) -> 3^3^(3 + 1) In[26]:= deciS[hase[baseS[2, 2^8]]] == 3^3^4 Out[26]= TrueDie Lösung erfordert kaum Arbeit, aber passend zum Feiertag etwas Witz: Frohes Neues Jahr! Mit den besten Grüssen Udo. -- Using Opera's revolutionary e-mail client: http://www.opera.com/mail/ |
Frühere |
||||
Vorherige |