Istnieje wiele sposobów generowania losowych słów. Możesz pobrać losowe sylaby z zestawu, możesz użyć n-krotek, prawdopodobnie sieci neuronowych (co nie mogą zrobić?), Na przemian spółgłosek i samogłosek itp. Metoda, na której opiera się to wyzwanie, jest zdecydowanie najgorsza . Wykorzystuje łańcuch Markowa do generowania losowych słów. Jeśli znasz łańcuchy Markowa, prawdopodobnie wiesz, dlaczego ta metoda jest tak straszna.
Jeśli chcesz przeczytać o łańcuchach Markowa, kliknij tutaj .
Twój program pobierze jedno lub więcej słów i wygeneruje pojedyncze losowe słowo za pomocą metody ważonego łańcucha Markowa. Ponieważ prawdopodobnie nie ma to sensu dla nikogo oprócz mnie, oto wyjaśnienie poprzez użycie obrazu łańcucha Markowa z wprowadzeniem abba
:
(Wszystkie grubości krawędzi są takie same dla wszystkich zdjęć) Twój program wyświetli ścieżkę przez łańcuch Markowa na podstawie wprowadzonego tekstu. Jak widać, istnieje 1/2 szansa, że się wyda a
, 1/8 szansa aba
, 1/16 szansa abba
, 1/32 szansa ababa
itp.
Oto kilka innych przykładów łańcuchów Markowa:
yabba dabba doo
wolfram
supercalifragilisticexpialidocious
Jeśli chcesz więcej przykładów, skorzystaj z tego . (Zbyt ciężko nad tym pracowałem)
Szczegóły wyzwania:
- Dane wejściowe można traktować jako listę ciągów znaków lub jako ciąg oddzielony spacją, przecinkiem lub znakiem nowej linii
- Możesz założyć, że wszystkie słowa będą pisane małymi literami bez interpunkcji (ASCII 97-122)
- Możesz napisać program lub funkcję
- Aby przetestować, prawdopodobnie możesz wprowadzić przykłady i sprawdzić, czy wszystkie dane wejściowe są zgodne z łańcuchami Markowa
To jest golf-golf, więc twój program jest oceniany w bajtach.
Daj mi znać, jeśli jakakolwiek część tego jest niejasna, a ja postaram się, aby miało to większy sens.
b
więc nie można wytworzyć podwójnego b
. Ponadto po osiągnięciu b
nie wydaje się możliwe wróć do, start
aby utworzyć inne słowa). Uważam, że musisz wyjaśnić, jakie są wymagania ...
yabba dabba doo
to wypadek. Naprawię to jak najszybciej. Jeśli nie możesz wrócić, zacznij generować tylko jedno słowo z danego zestawu słów. Czy to wyjaśnia?