Utwórz program cat, czyli program, który pobiera dane wejściowe i drukuje je.
... Z wyjątkiem tego, że program losowo odbierze znaki od tekstu i wydrukuje je.
Każda postać na wejściu powinna mieć jednakowo równe szanse na usunięcie z programem, ponieważ trudno to zrobić, szanse dla każdej postaci mogą się różnić maksymalnie o 10%.
Twój program powinien pobrać dane wejściowe, a następnie losowo usunąć z nich znaki, a następnie ponownie wydrukować tę wersję. (Możesz drukować z końcowymi znakami nowej linii lub innymi znakami na wypadek, gdyby Twój język musiał drukować znaki nowej linii).
Jeśli dane wejściowe BOOOWL
byłyby, nie powinno to usuwać wszystkich Os z równą szansą: każda postać (nie unikalna) powinna być brana pod uwagę, więc zamiast każdego O połączonego z szansą 1/5 (na przykład), każdy O powinien mieć 1 / 5 szansa, więc, zamiast tam będąc 1/5 szansa BWL
, nie powinno być 1/5 szansa BOWL
, BOOWL
.
Dane wejściowe są ograniczone do STDIN lub najbliższego odpowiednika.
Każda postać musi mieć minimum 10% i maksimum 30% szans na usunięcie.
Szanse każdej postaci należy obliczać indywidualnie.
Możesz użyć dowolnego elementu swojego języka obsługującego akcje losowe, niezależnie od tego, czy jest to funkcja czy coś innego.
Dane wyjściowe muszą być przesyłane przez STDOUT lub najbliższy odpowiednik. Jeśli twój język ma STDOUT, nie wysyłaj w żaden inny sposób. Jeśli twój język nie może wyprowadzać ciągów jako tekstu, użyj najbliższego odpowiednika (tutaj wyjście z tablicy znaków C jest OK).
To jest kod golfowy. Najkrótszy program wygrywa.
BOWL OF SOUP
mogą O
być usunięte za jednym razem?
Output must be through STDOUT, as a text. Do not output a character array.
<- Mam język, który pozwala wypisać tablicę znaków (jest spłaszczona przed wyjściem). Czy to jest niedozwolone? Co powiesz na języki takie jak C, gdzie ciąg znaków jest w zasadzie tablicą znaków?