Ok mal schauen gar nicht so easy
Das ganze sieht mir nach einer altenrativen Darstell8ung von Zahlen aus
sprich man kann entweder sagen xy wobei x angibt wie oft y in der zahl
oder einfach dei Zahl als sich selbst e.g 1 = 1
1 : eine eins oder 11 = 1x1 = 1
11 : zwei einsen oder 21 = 2x1 = 2
21 : eine zwei, eine wins oder 1211 = 1x2+1x1 = 3
1211 : eine eins, eine zwei, zwei einsen oder 111221 = 1x1 + 1x2 + 2 x 1 = 5
Komment wir zu der Reihe selbst sie geht also von
1,2,3,5 ? Irgendwie fehlt mir da die 4 also gehen wir davon aus das es sich um die Reihe der Primzahlen handelt
gut die naechste waere dann wohl 7 aber
111221: eine Eins , eine eins, eine eins, eine zwei, eine zwei, eine eins oder 21112211 = 2x1 + 1x1 + 2x2 + 1x1 = 6 ?
6 ist nicht Prim aber warum haben wir dann 4 uebersprungen eventuell ist die Zahl egal
dann koennten wir also einfach weitermachen und das ergebnis ignorieren
21112211: eine zwei, eine eins, eine eins, eine eins, eine zwei, eine zwei, eine eins, eine eins oder 1221112221 = 1x2 + 2x1 + 1x1 + 2x2 + 2x1 = 11 (braucen wir das ueberhaupt noch)
unsere Zahlen haben immer eine gerade Anzahl von Ziffern und nun koeennen wir etwas schreiben das das mapped
Jetzt ist die Frage wie schreiben wir das am besten es ist ja rekursiv. Schauen wir uns mal unsere cases an
Wir brauchen mal eine funktion die uns eine zahl die naechtfolgende umwandelt
base case: Element 1 = 1 easy
ok jetzt die advanced es gibt 2 haup untershceidungen:
a) a Die Zahl die wir uebergeben haben ist einstellig dann ist under output 1 zahl
b) Die Zahl hat 2 oder mehr stellen:
Wir schauen ist 1. Stelle == 2. Stelle ?
Wenn ja schreiben wir 2 Zahl und haengen das vorne an die konvertirung der Zahl von 3. Stelle aufwaerts e.g original [1 1] 2 1 2= 11 => 2 1 . convert(2 1 2)
Wenn die ungleich sind dann schreiben wir 1 Zahl und haengen die konvertirung der zahl von 2. Stelle+ an. :
1 x Erste Stelle . Konvertierung 2. Stelle +.
Nun koennen wir also eine Zahl basierend auf der vorherigen berechnen
Jetzt brauchen wir nur noch was das unsere Funktion nach und nach aufruft bis wir am base case sind:
angenommen wir wollen das 30 element. Ein Element X ist defniert als reihe(x) = convert(x-1)
e.g
element(30) = konvert(element(29)) = konvert(konvert(element(28)) = konvert(konvert(konvert(element(27))) ..........
nachdem wir eh schon so schoen viel "(" haben und ich mich grade pervers fuehle werden wir das ganze in scheme schreiben
Code:
(define atomic?
(lambda (it)
(if (pair? it)
#f
#t)))
(define elementat
(lambda (n)
(if (eq? n 1)
(convert (list 1))
(convert (elementat (- n 1))))))
(define convert
(lambda (number)
(if (null? number)
'()
(if (null? (cdr number))
(cons 1 number)
(if (eq? (car number) (cadr number))
(cons 2 (cons (car number) (convert (cddr number))))
(cons '1 (cons (car number) (convert (cdr number)))))))))
Code:
(elementat 30)
1221112221221112212221221221112221221221112211122122111221222122122111221221112221222122122111221112212212211122212211122122212212211122212212211122111221221221112221221112212221221221112211122122212212211122122111222122111221222122122111221221112221222122122111221112212212211122212211122122212212211122122111222122111221222122122111222122122111221112212221221221112211122122122111222122111221222122122111221112212221221221112212211122212212211122212211122122212212211122212212211122111221221112212221221221112212211122212221221221112211122122122111222122111221222122122111222122122111221112212212211122212211122122212212211122111221222122122111221221112221221221112221221112212221221221112221221221112211122122111221222122122111221221112221222122122111221112212212211122212211122122212212211122111221222122122111221221112221222122122111221112212212211122212211122122212212211122122111222122111221222122122111222122122111221112212211122122212212211122122111222122212212211122111221221221112221221112212221221221112212211122212211122122212212211122212212211122111221222122122111221112212212211122212211122122212212211122111221222122122111221221112221221221112221221112212221221221112221221221112211122122111221222122122111221221112221222122122111221112212212211122212211122122212212211122122111222122111221222122122111222122122111221112212211122122212212211122122111222122212212211122111221221221112221221112212221221221112221221221112211122122122111222122111221222122122111221112212221221221112212211122212221221221112211122122122111222122111221222122122111221112212221221221112212211122212212211122212211122122212212211122212212211122111221221112212221221221112212211122212221221221112211122122122111222122111221222122122111221112212221221221112212211122212221221221112211122122122111222122111221222122122111221221112221221112212221221221112221221221112211122122122111222122111221222122122111222122122111221112212211122122212212211122122111222122212212211122111221221221112221221112212221221221112221221221112211122122122111222122111221222122122111221112212221221221112212211122212211122122212212211122122111222122212212211122111221221221112221221112212221221221112212211122212211122122212212211122212212211122111221222122122111221112212212211122212211122122212212211122111221222122122111221221112221221221112221221112212221221221112221221221112211122122111221222122122111221221112221222122122111221112212212211122212211122122212212211122212212211122111221221221112221221112212221221221112211122122212212211122122111222122122111222122111221222122122111222122122111221112212211122122212212211122122111222122212212211122111221221221112221221112212221221221112211122122212212211122122111222122212212211122111221221221112221221112212221221221112212211122212211122122212212211122212212211122111221221221112221221112212221221221112221221221112211122122111221222122122111221221112221222122122111221112212212211122212211122122212212211122212212211122111221221221112221221112212221221221112211122122212212211122122111222122111221222122122111221221112221222122122111221112212212211122212211122122212212211122122111222122111221222122122111222122122111221112212221221221112211122122122111222122111221222122122111221112212221221221112212211122212212211122212211122122212212211122212212211122111221221112212221221221112212211122212221221221112211122122122111222122111221222122122111221112212221221221112212211122212221221221112211122122122111222122111221222122122111221221112221221112212221221221112221221221112211122122212212211122111221221221112221221112212221221221112211122122212212211122122111222122122111222122111221222122122111222122122111221112212211122122212212211122122111222122212212211122111221221221112221221112212221221221112212211122212211122122212212211122212212211122111221221112212221221221112212211122212221221221112211122122122111222122111221222122122111222122122111221112212212211122212211122122212212211122111221222122122111221221112221