169 похожих чатов

Тогда, соответственно, имею следующий вопрос. Вот у меня единственное место

в коде, где был использован рандом, а далее — та самая невероятно случайная последовательность. Подскажите, пожалуйста, как реализовать изменение состояния последовательности, чтобы каждый раз из неё возвращалось новое число?

8 ответов

19 просмотров

положи этот список в стейт, и вытаскивай элементы по одному

Лямбда-гора-2.0 Автор вопроса
кана
положи этот список в стейт, и вытаскивай элементы ...

Можно, пожалуйста, подробнее, и в хаскельских терминах, чтобы я хотя бы знал, что гуглить

Лямбда-гора 2.0
Можно, пожалуйста, подробнее, и в хаскельских терм...

контекст: import Control.Monad.State.Strict getSeed :: IO Int вариант 1: у тебя есть функция которая из прошлого числа генерит следующее next :: Int -> Int random :: MonadState Int m => m Int random = do modify' next; get main = do seed <- getSeed flip evalStateT seed do print =<< random print =<< random вариант 2: у тебя есть бесконечный список случайных чисел randoms :: Int -> [Int] random :: MonadState [Int] m => m Int random = state \(x:xs) -> (x, xs) main = do seed <- getSeed flip evalStateT (randoms seed) do print =<< random print =<< random

Лямбда-гора-2.0 Автор вопроса
кана
контекст: import Control.Monad.State.Strict getS...

А определять getSeed никак не надо?

кана
контекст: import Control.Monad.State.Strict getS...

в принципе между вариантами разницы никакой, вариант со списком не будет сильно менее оптимальным

список тут не нужен, я его для демонстрации использовал. нужна тебе только функция перехода от одного состояния-числа к другому

Лямбда-гора-2.0 Автор вопроса
Cheese Syrowiecki
список тут не нужен, я его для демонстрации исполь...

Ну я в итоге так и пытался сделать, но всё же не смог реализовать изменение состояния. Сейчас таки пытаюсь добраться до админов codeforces, чтобы random по умолчанию добавили.

Похожие вопросы

Обсуждают сегодня

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
И никого не интересует какие пакеты кто использует. ((% Заходишь на сайт симфони и видишь поддержку Украины - по законам РФ это ж экстремизм. Только никто не отказывается от с...
Am Ambrion
11
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Чтобы перехватить все нажимания буков на форме, надо хук ставить? Пробовал на форме ОнКейДаун, оно ловит клаву если фокус не на компоненте с вводом текста
Serjone
15
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
7
Народ! Впервые клиенту пришло письмо от РКН, у вас, дескать, есть яндекс метрика, а нигде не написано, что вы ее юзаете. Никто не сталкивался?
Sasha Beep
14
Всем привет! вывожу на общей стр дочерние ресурсыв каждом ресурсе галерея, и первая фотка должна выводиться на общей [!DocLister? &prepare=photo !]
Alekso
12
Я правильно понимаю что нет способов получить список ожидающих заявок на вступление в группу с помощью бота из mtproto?
Шамиль Прилов
7
А можно вопрос? Мне сегодня сказали что у меня функция (которая просто заполняет массив значениями) не правильная void Full(double * arr, int n) { for (int i = 0; i < n; i...
† C E †
7
Добрый вечер. Хочу чтобы у меня в классе поле было функцией, которая возвращает строку. Делаю так: interface ... TGetOutPath = function : String of object; ... protec...
Kirill Filippenok
12
Карта сайта