Hallo Peter,
FromDigits[FixedPoint[Fold[ReplacePart[#1, Count[#1, #2], #2 + 1]&, #,
o]&, o = Range[0, 9]]]
war meine Formulierung. Die Liste o ist natürlich nur wegen der Eleganz
drin. Wenn man von einer beliebigen Liste Random[Integer, {0, 9}], {10}]
ausgeht, welche ist die längste Schrittzahl, bis der Algorithmus die
gesuchte Zahl ausgibt? Die kürzeste Schrittzahl ist 1, wenn man
zufälligerweise von {6, 2, 1, 0, 0, 0, 1, 0, 0, 0} ausgegangen wäre.
Gruss
Udo.
Block[{lst = {1, 2}},
While[UnsameQ @@ Take[lst, -2],
lst = NestWhileList[Function[x, Count[x, #] & /@ Range[0, 9]],
Table[Random[Integer, {0, 9}], {10}], UnsameQ, 2, 10]];
lst // Last // FromDigits]//Timing
|