DMUG-Archiv 2006

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re: Re[2]: Aufgabe::autobiographische Zahl

bemerkenswert. Das konvergiert in wenigen Schritten:

FixedPointList[
  Fold[ReplacePart[#1, Count[#1, #2], #2 + 1] &, #, Range[0, 9]] &, 
  Range[0, 9]] // TableForm

Out[1]//TableForm= 0   1   2   3   4   5   6   7   8   9

                   1   2   2   1   1   1   1   1   1   1

                   0   7   1   0   0   0   0   1   0   0

                   7   2   1   0   0   0   0   1   0   0

                   6   2   1   0   0   0   1   0   0   0

                   6   2   1   0   0   0   1   0   0   0


in den einzelnen Schritten wird ja beim Zählen jeder Ziffer immer die
gerade veränderte Liste genommen, es stehen also jeweils vorne schon
die neuen Zahlen, hinten noch die alten. Wenn ich das in einem Schritt
mache, also jeweils alle Ziffern zähle, und dann daraus die neue Liste
bilde, geht's nicht, es ergibt sich ein Zweierzyklus:

NestList[Function[list, Count[list, #] & /@ Range[0, 9]], Range[0, 9], 20] //
TableForm

Out[2]//TableForm= 0   1    2   3   4   5   6   7   8   9

                   1   1    1   1   1   1   1   1   1   1

                   0   10   0   0   0   0   0   0   0   0

                   9   0    0   0   0   0   0   0   0   0

                   9   0    0   0   0   0   0   0   0   1

                   8   1    0   0   0   0   0   0   0   1

                   7   2    0   0   0   0   0   0   1   0

                   7   1    1   0   0   0   0   1   0   0

                   6   3    0   0   0   0   0   1   0   0

                   7   1    0   1   0   0   1   0   0   0

                   6   3    0   0   0   0   0   1   0   0

                   7   1    0   1   0   0   1   0   0   0

                   6   3    0   0   0   0   0   1   0   0

                   7   1    0   1   0   0   1   0   0   0

                   6   3    0   0   0   0   0   1   0   0

                   7   1    0   1   0   0   1   0   0   0

                   6   3    0   0   0   0   0   1   0   0

                   7   1    0   1   0   0   1   0   0   0

                   6   3    0   0   0   0   0   1   0   0

                   7   1    0   1   0   0   1   0   0   0

                   6   3    0   0   0   0   0   1   0   0


auch wenn ich vom Ende her inkrementell zähle, geht's:

FixedPointList[
    Fold[ReplacePart[#1, Count[#1, #2], #2 + 1] &, #, Range[9, 0, -1]] &,
    Range[0, 9]] // TableForm

Out[3]//TableForm= 0   1   2   3   4   5   6   7   8   9

                   1   9   1   1   1   1   1   1   1   1

                   7   2   0   0   0   0   0   0   0   1

                   6   2   1   0   0   0   0   1   0   0

                   6   2   1   0   0   0   1   0   0   0

                   6   2   1   0   0   0   1   0   0   0



wenn wir schon dabei sind:

gesucht ist eine 9-stellige Zahl, in der jede Ziffer von 1 bis 9 einmal
vorkommt, so dass die Anfangszahl, gebildet aus den ersten k Ziffern, durch k
teilbar ist. Mit 987654321 geht's schon fast, es geht gut für k=1,2,...6,
aber 9876543 ist nicht durch 7 teilbar (jede solche Zahl ist natürlich
durch 9 teilbar, als kleiner Tipp).

Roman


Antworten:
Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html