Ein kleines Programmier/Logikrätsel 2

(edited)

Ich war mir nicht sicher, ob ich es als Addon in den vorherigen Artikel bauen soll, oder einen eigenen schreiben. Aber für diejenigen, die das interessiert hat, ist es wohl ansonsten nicht gut erkennbar.

@ozelot47 dürfte mir gestern via c# bereits den richtigen Tip gegeben haben, vielleicht auch ohne zu verstehen, was mein Problem war. Gleichzeitig wurde mir erst spät in der Nacht klar, dass ich überhaupt kein Problem hatte; außer natürlich eine komische Denkblockade aufzuheben.

So, wie kann ich das jetzt leserlich erklären?

Mein Überlegung war ja, dass man aus einer Anzahl an Buchstaben, die selben Wörter generien können müsste, wie eben der Buchstabenstrang lang ist. Also, aus "aaaa", wird irgendwann mal "bald" werden, wenn alle Buchstaben durchiteriert sind. Und gestern hatte ich die ernüchternde Erkenntnis, es ginge nicht, weil doch nach "aaaz" das hintere z nicht mehr ein d von bald wird.

Ich bin ein Koffer, ehrlich!

So wie bei einer 4 teiligen Schleife von 0..9, die Hinterste, immer wieder von 0 anfängt, fängt ja auch "aaaa" wieder bei a an. Also, "aaba". Ich hoffe, das ist verständlich erklärt. Weiterführend, schiebt es alle Buchstaben im Laufe der Iteration nach oben. Immer wenn z kommt, wird der nächsthöhere Buchstabe einen Schritt mehr im Alphabet.

In Rust sieht das dann so aus:

fn main(){

    for a in 'a'..='z'{
        for b in 'a'..='z'{
            for c in 'a'..='z'{
                for d in 'a'..='z'{
                    println!("{a}{b}{c}{d}");

    }

    }

    }
    }
}


Wirkt eigentlich unkompliziert. und vor allem, tatsächlich (nachdem die Augabe in eine Datei umgeleitet wurde), ist auch das Wörtchen "bald" in der Menge zu finden.

image.png

Wird sind erst beim Buchstaben b, trotzdem sind es bereits fast 18.000 Intervalle gewesen. Unglaublich, was da paar Buchstaben auslösen können.
Da muss ich doch förmlich auch zum Ende der Schlange schauen.

image.png

0.08492188 BEE
1 comments

Congratulations @jeyf123! You have completed the following achievement on the Hive blockchain And have been rewarded with New badge(s)

You distributed more than 34000 upvotes.
Your next target is to reach 35000 upvotes.

You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

Check out our last posts:

0E-8 BEE