Ihre Aufgabe ist es, ein unsinniges Wort zu generieren, das mit der angegebenen Anzahl von 'Silben' einigermaßen aussprechbar ist. Jedes Mal, wenn das Programm ausgeführt wird, ergibt sich möglicherweise ein anderes Unsinnwort.
Aussprechbarkeit
Ein aussprechbares Wort besteht aus Silben, die wiederum aus einer Vokalgruppe bestehen, die möglicherweise zwischen zwei Konsonantengruppen eingeschlossen ist. Nicht alle Töne können in allen Positionen ausgesprochen werden, und da dies von der Sprache abhängt, verwenden wir Muster, die für Englischsprachige verständlich sind
Konsonantengruppen starten:
b c d f g h j k l m n p r s t v w y z bl br ch cl cr dr fl fr gh g n gr k p pl pr sc sh sk sl sm sn sp st th tr wr wr sh shm shr squ str thr thr
Vokalgruppen:
a e i o u ai ao au ee ei eu ia dh io oa oi oo ou ue ui
Konsonanten-Endgruppen:
bcdfglmnprstxz bt ch ck ct ft gh gn lb ld lk ll lm ln lp lt mb mn mp nk ng nt ph pt rb rc rd rf rg rk rl rm rn rt rv rz sh ss ss st zz lch lsh lth rch rsh rst rth sch tch
Silben kombinieren
Sowohl Anfangs- als auch Endkonsonantengruppen sind im Allgemeinen optional. Sie können jedoch keine Silbe, die mit einem Vokal endet, unmittelbar vor eine Silbe setzen, die mit einem Vokal beginnt.
Haftungsausschluss
Der Einfachheit halber können bestimmte englische Wörter, wie Vakuum, Xylophon, Mnemonik, Pterodaktylus, Schön, Bla, Sie, Wow und die meisten Pluralformen, nicht auf diese Weise generiert werden.
Überblick
Mögliche Silbenmuster mit diesem Schlüssel:
(SC) = Startkonsonant; (V) = Vokalgruppe; (EC) = Endkonsonant
Für eine Silbe:
- (SC) (V) (EG)
- (V) (EG)
- (SC) (V)
- (V)
Mit zwei Silben:
- (SC) (V) (EG) (SC) (V) (EG)
- (SC) (V) (EG) (SC) (V)
- (SC) (V) (EG) (V) (EG)
(SC) (V) (EC) (V)
(SC) (V) (SC) (V) (EG)
(SC) (V) (SC) (V)
(V) (EC) (SC) (V) (EC)
- (V) (EC) (SC) (V)
- (V) (EG) (V) (EG)
(V) (EG) (V)
(V) (SC) (V) (EC)
- (V) (SC) (V)
... und so weiter
Beispiele
1 Silbe
- charst
- fest
- geschrumpft
- eess
- shue
- oo
- cheezz
2 Silben
- Jazzcrap
- Whylprog
- Essen
- umba
- ola
- haben
- ingsoc
- greespheurz
- bleuspoo
3 Silben
- brokiompic
- squirdshlicker
- Hauptstadt
- opengtrass
- Doppeltes Denken
- Großer Bruder
- phoebliaptmoo
- skolfblauquent
4 Silben
- strawishoepick
- Patchworkzombie
- prearneajoomie
- slephotoschou
- doubleplusgood
Codierung
Eingabe: Eine Ganzzahl für die Anzahl der zu generierenden Silben
Ausgabe: ein (wahrscheinlich) unsinniges Wort, das viele Silben lang ist
Regeln
- Irgendeine Form von (pseudo) Zufälligkeit ist erforderlich. Alle Silbenkombinationen sollten (theoretisch) erzeugbar sein, wobei die Verteilung nicht einheitlich sein muss.
- Sie können davon ausgehen, dass Ihr Generator aperiodisch ist, daher muss es nicht mathematisch möglich sein, jedes mögliche Wort zu generieren (in der Realität hat es möglicherweise nicht genügend Zeit), und Sie müssen keinen Beweis dafür vorlegen, dass Ihr Wort aperiodisch ist Generator kann in der Tat jedes mögliche Wort produzieren.
- Ihr Generator muss in der Lage sein, mindestens 255 verschiedene Werte zu erzeugen, damit Sie nicht einfach 4 zurückgeben können jedes Mal können, wenn der Generator aufgerufen wird.
- Was letztendlich wichtig ist, ist, dass Sie alle oben genannten Buchstabengruppen irgendwie in Ihren Code aufnehmen, dass jede Buchstabengruppe eine Wahrscheinlichkeit von ungleich Null hat, ausgewählt zu werden, und dass jedes Silbenmuster eine Wahrscheinlichkeit ungleich Null hat, aufzutreten (wenn es mit wahrer Zufälligkeit versehen ist).
- Sie müssen bis zu 16 Silbenwörter unterstützen
- Zusätzlich zu den Regeln zum Kombinieren von Silben darf das Ausgabewort nicht haben:
- 3 aufeinanderfolgende Vokale (
a
e
i
o
u
dies kann fürqu
Wörter passieren ) - 3 aufeinanderfolgende übereinstimmende Konsonanten
- 3 aufeinanderfolgende Vokale (
Viel Glück!
Beachten Sie, dass dies aus folgenden Gründen anders ist als Generieren Sie ein aussprechbares Wort :
- Variable Anzahl von Silben, die durch Eingabe angegeben werden und keine strengen 10-Buchstaben-Anforderungen sind.
- Diese Herausforderung fügt nicht erschöpfende Buchstabengruppen hinzu, die (geschickt) codiert werden müssen, und ermöglicht mehr Varianten von Silben, sodass Code nicht einfach von der anderen Herausforderung kopiert werden kann
- Squirdshlicker. Muss ich mehr sagen?
Ich habe auch vergessen, zu täuschen, aber es stellt sich heraus, dass dies genug Neues auf den Tisch bringt, dass es keine Rolle spielt. Immerhin gibt es Hunderte von Quine-Varianten-Herausforderungen.
Antworten:
JavaScript (ES6),
407 -403 ByteProbieren Sie es online!
quelle
[^aeiou]{3}
richtig ist? Basierend auf dem Wort 'Matching' und dem 3-Silben-Beispiel,squirdshlicker
dasrdshl
OP enthält , bedeutet OP meiner Meinung nach nur 3 gleiche benachbarte Konsonanten (dhbbb
nicht erlaubt) anstelle von 3 benachbarten Konsonanten im Allgemeinen.05AB1E ,
237234230228 Bytes-2 Byte dank @MagicOctopusUrn .
Probieren Sie es online aus oder holen Sie sich noch ein paar Ausgaben .
Erläuterung:
Sehen Sie sich meinen Tipp 05AB1E an (Abschnitt So komprimieren Sie Zeichenfolgen, die nicht Teil des Wörterbuchs sind , So komprimieren Sie große Ganzzahlen und So komprimieren Sie Ganzzahllisten ), um zu verstehen, wie die Komprimierungselemente funktionieren.
quelle
žM•ô#‰¦λu¢!¡°gU€•6BS<èJ
4 kleiner als.•!m1±P1Ÿ6ºZ dâ4∍m–G¢”ãÔ2g•
(Basis 6 Konvertierung und Ersatz mit eingebautem AEIOU). TIO Link zu lang.žM•·Áy&ŒGηΩ¼αŸKq•6вèJ
. :) PS: Sie können URL- Shortenger wie tinyurl.com für PPCG verwenden, im Gegensatz zu den meisten anderen SEs. :)Jelly , 231 Bytes
Probieren Sie es online!
Ein vollständiges Programm, das ein einziges Argument benötigt, die Anzahl der benötigten Silben.
Erläuterung
Das Herzstück ist eine komprimierte Wörterbuchzeichenfolge mit 66 Wörtern. Wenn die Wörter in Gruppen von Konsonanten und Vokalen aufgeteilt werden und die ersten drei Gruppen für jedes Wort genommen werden, erzeugen sie die gewünschten Start-, Vokal- und Endgruppen aus der Frage. Die Ausnahmen sind
Hilfslink 1: Überprüfen Sie, ob mehr als 3 Vokale in einer Reihe oder mehr als 3 des gleichen Buchstabens in einer Reihe sind Hilfslink 2: Die drei Gruppen von Strings Hauptlinkqu
undsqu
weil sie einen Vokal haben, werden diese manuell hinzugefügt. Die Wortliste wurde algorithmisch aus dem Jelly-Wörterbuch mit einem Python-Skript erstellt. Beachten Sie, dass einige Buchstabengruppen wiederholt werden, aber die Frage ermöglicht, dass die Ausgaben nicht jede mögliche Kombination einheitlich darstellen. Wenn dies bevorzugt würde, wäre es einfach, jede Gruppe auf Kosten von zwei Bytes (Q€
) eindeutig zu machen .quelle
gnuignaalfbi
für die Eingabe4
,aa
sollte aber nicht möglich sein, wenn ich die Herausforderung richtig verstanden habe. In dem Abschnitt , in dem Silben kombiniert werden, heißt es: " ... Sie können jedoch keine Silbe, die mit einem Vokal endet, unmittelbar vor einer setzen, die mit einem Vokal beginnt. "shmooze gaolbird hailshot shriech waeful furze ghaut
haha" enthält. xD Wie groß ist Jellys Wörterbuch?Python 2 ,
522510 BytesProbieren Sie es online!
quelle
Pyth,
346335 BytesProbieren Sie es hier online aus .
quelle
Rubin ,
381379375 BytesVerwendet chaotische Regex-Übereinstimmungen, um die Konsonantengruppen zu erhalten. Könnte wohl optimiert werden.
Probieren Sie es online!
quelle