Зробіть втрачений RNG


17

Lost - це 2-D мова програмування, де положення старту та напрямок ip повністю випадкові.

Це дуже ускладнює створення детермінованих програшів. Однак сьогодні ми не пишемо детермінованої програми, ми пишемо RNG.

Напишіть програму, яка втратила, яка не вводить і виводить одну цифру (0,1,2,3,4,5,6,7,8 або 9), при цьому всі цифри мають однакову ймовірність виведення. Оскільки початкове місце розташування та напрямок Lost є єдиним джерелом випадковості, єдиний спосіб зробити це - щоб кожне місце розташування у вашому джерелі виводило інше число від 0 до 9 з рівним числом, що виводило кожну цифру.

Ви можете обчислити ймовірність кожної цифри, скориставшись -Qпрапором та перенісши його в цей сценарій python

import sys
a=sys.stdin.read().split()[:-1]
for x in range(10):print x,':',a.count(`x`)
print[x for x in a if x not in list("1234567890")]

Спробуйте в Інтернеті!

Це тому відповіді будуть набиратись у байтах, менша кількість байтів - краща.


Огляд втрачених

Втрачено - це обговорена неявна мова IO 2D, яка бере багато з форми Кляйна. Ось коротка таблиця того, що роблять втрачені команди

  • \, /, |Дзеркала IP -

  • <, ^, >, vПерекладає внутрибрюшинно в напрямку

  • [Відбиває ip, якщо він рухається на схід; стає, ]якщо ip рухається горизонтально

  • ]Відбиває ip, якщо він рухається на захід; стає, [якщо ip рухається горизонтально

  • ! Пропускає наступну операцію

  • ? Спливає з вершини стека і стрибає, якщо не дорівнює нулю

  • : Дублює верхню частину стека

  • $ Заміняє два верхні елементи стека

  • ( Вискакує зі стека і підштовхує до розмаху

  • ) Вискакує з розмаху і штовхає до стека

  • 0- 9штовхає n до вершини стека

  • "Починається і закінчується літеральним рядком. Під час рядкових літеральних команд не виконуються, а замість них їх символи висуваються до стеку.

  • + Додає два перших числа

  • * Помножує два верхні числа

  • - Помножимо верх на -1

  • % Вимикає безпеку

  • # Увімкнення безпеки

  • @ Закінчується виконання, якщо безпека вимкнена (починається увімкнено)


Що трапиться, якщо ви спробуєте поміняти два значення зі стека, але є лише одне значення або спробуйте перейти з порожнього стека?
pppery

@ppperry Стек укладений неявними нулями.
Опублікувати Rock Garf Hunter

1
Занадто мало інформації про мову. Він обертає? Що означає "безпека"? Опис брекетів вводить в оману? Як використовується сфера застосування?
Мертвий Поссум

@DeadPossum я намагався бути лаконічним. Це обгортання. Безпека вже пояснюється у питанні. Я не знаю, що ви маєте на увазі в дужках. []діють як двері, <>вказують на напрямки і ()зберігають та відкликають із сфери застосування. Область застосування використовується для зберігання значень.
Опублікувати Rock Garf Hunter

@WheatWizard Отже, безпека - це лише умова @чи у неї є інші випадки використання? Про дужках, я не розумію цю частину: becomes ] if the ip is moving horizontally. Переміщення на схід теж горизонтально, чи не так?
Мертвий Поссум

Відповіді:


12

81 101 байт

Це може бути пограбовано далі ...

>%(0@>%(1@>%(2@>%(3@>%(4@>%(5@>%(6@>%(7@>%(8@>%(9@
^<<<<^<<<<^<<<<^<<<<^<<<<^<<<<^<<<<^<<<<^<<<<^<<<<

Спробуйте в Інтернеті!


1
Цікавий підхід! Я не думав про це
Post Rock Garf Hunter

1
101 байт, що фіксує подвійний друк. Щойно додав стек-поп перед тим, як безпеку вимкнено, тож якщо ви натиснете номер на початку, він може спливати його, натиснути його знову, а потім померти. Я не знаю, чи це все ще технічно є рівномірним випадковим випадком ...
Арнольд Палмер

1
Я буквально одночасно придумав таку ж ідею ...
pppery

1
Вихід не однаковий. 0має 7/101 шанс надрукувати (будь-який із блоків <або ^під ним, плюс символ >та %), 1- 8має шанс 10/101 та 9має шанс 11/101. Тоді схоже, що може виникнути шанс, що це просто триватиме назавжди.
Арнольд Палмер

1
Він повинен завернутись, інакше це закінчиться, коли він починається на верхній лінії, що йде вгору.
pppery

9

Втрачено , 54 байти

>%(0@>%(1@
@>%(2@>%(3
5@>%(4@>%(
(7@>%(6@>%
%(9@>%(8@>

Спробуйте в Інтернеті!

Просто скопіюйте з відповіді pppery і зробіть деякі випадкові речі. Я нічого не знаю про втрачену мову. І я навіть не знаю, що відбувається за вищезазначеними кодами. Це робота? (Не знаю)


Ваш код дає вдвічі більше випуску, ніж ppperry, я думаю, це через те, як -Qпрацює? Вигляд, здається, нормально розподілений у будь-якому випадку. Було б непогано мати повну специфіку мови, пов'язаної у питанні.
Аарон

@Aaron Я повинен був пояснити, як це -Qпрацює. Оскільки мова є випадковою, перевірка проводиться шляхом запуску всіх можливостей. -Qробить це і друкує всі результати. Чим коротша програма, тим менше можливостей і тим менше виходів -Q.
Опублікувати Rock Garf Hunter
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.