Zahlenreihe fortsetzen

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von marco_laif, 23.01.2011.

  1. #1 marco_laif, 23.01.2011
    marco_laif

    marco_laif Grünschnabel

    Dabei seit:
    23.01.2011
    Beiträge:
    2
    Zustimmungen:
    0
    Hi Leute,

    ich mache gerade mein Abi und habe von meinem Lehrer die Aufgabe bekommen ein Script zu schreiben, dass folgende Zahlenreihe fortsetzt.

    1
    1 1
    2 1
    1 1 1 2
    3 1 1 2
    2 1 1 2 1 3

    Den Aufbau der Reihe verstehe ich noch. Es wird lediglich gezählt wie oft die jeweilige Zahl in der vorherigen Zeile vorkommt.

    Zum Beispiel kommen in Zeile 4 drei Einsen und eine Zwei vor. Also steht in Zeile 5:
    3 (*) 1 (und) 1 (*) 2.

    Es ist die einzige Aufgabe auf 9 Übungsblättern, die ich nicht hinbekomme und morgen ist Abgabe. Hat jemand einen Tipp wie ich das machen kann ???

    Viele Grüße und Danke euch im Vorraus,
    Marco
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 marcellus, 23.01.2011
    marcellus

    marcellus Kaiser

    Dabei seit:
    09.05.2007
    Beiträge:
    1.392
    Zustimmungen:
    0
    Du beschreibst mit einer Zeile die Zeile darüber:

    1
    ein mal eins (1 1)
    zwei mal eins (2 1)
    ein mal 1 (1 1) ein mal 2 (1 2)
    drei mal 1 (3 1) ein mal 2(1 2)
    zwei mal 1 (2 1) ein mal 2(1 2) ein mal 3(1 3)
    drei mal 1(3 1) zwei mal 2 (2 2) ein mal 3(1 3)
    usw

    Das shell script solltest du ja hoffentlich hinbekommen
     
  4. #3 marco_laif, 23.01.2011
    marco_laif

    marco_laif Grünschnabel

    Dabei seit:
    23.01.2011
    Beiträge:
    2
    Zustimmungen:
    0
    Hi,

    mein Lösungsansatz ist folgendes:

    Ich benutze zwei Arrays. Eins für die Zahlenreihe und eins für die Speicherung der Anzahl der einzelnen Zahlen.
    Dann gehe ich das erste Array mit einem CASE von vorne nach hinten durch und erhöhe jeweils die Anzahl der aktuellen Zahl um 1.
    Am Ende schreibe ich die Zahlen, deren Anzahl nicht 0 ist mit ihrer Anzahl in die (neue) Zahlenreihe.

    Vielleicht ist das auch nicht gerade der beste Ansatz, aber ich versuche es mal so. Falls das klappt poste ich den Code hier.

    Grüße Sascha
     
  5. #4 Aqualung, 27.01.2011
    Aqualung

    Aqualung Routinier

    Dabei seit:
    12.02.2008
    Beiträge:
    404
    Zustimmungen:
    0
    Code:
    #!/bin/bash
    
    a[1]=1 && echo ${a[1]}
    for i in $(seq 1 13); do
        l=$(for i in $(seq 1 ${#a[@]}); do echo -n ${a[$i]} "$i "; done) 
        echo "$l"
        for i in $(seq 1 ${#a[@]}); do a[$i]=0;  done                     
        while IFS= read -n1 n;do
            (( a[$n]++ ))                                                              
        done< <( echo -n "$l")
    done
    Witzig ist, dass es einen "Grenzwert" gibt:

    Code:
    1
    11
    21
    1112
    3112
    211213
    312213
    212223
    114213
    31121314
    41122314
    31221324
    21322314
    21322314
     
  6. juan_

    juan_ König

    Dabei seit:
    22.01.2004
    Beiträge:
    992
    Zustimmungen:
    0
    Ort:
    Berlin

    :hilfe2:
     
Thema: Zahlenreihe fortsetzen
Besucher kamen mit folgenden Suchen
  1. zahlenreihe fortsetzen

Die Seite wird geladen...

Zahlenreihe fortsetzen - Ähnliche Themen

  1. SCO will Prozesse fortsetzen

    SCO will Prozesse fortsetzen: Mit frischem Kapital will SCO den Gläubigerschutz beenden, die begonnenen Prozesse fortsetzen und zu einem Privatunternehmen werden. Weiterlesen...