apple bar
Hi, banana bar
Вариантов рандомизация много. Рандомизация одного элемента может быть больше 2 {1|2|3|4…}
По какому пути вы бы реализовали этот алгоритм? Очень благодарен за ответы!
http://www.angarsky.ru/drupal/skript-dlya-generacii-tekstov-iz-shablona.html
Этот вариант не подошел. Он генерирует рандомное количество вариантов относительно вводимых данных. Даже если всего вариаций 4, он сгенерирует больше 4 с повторами У меня была задача перебрать всевозможные варианты без повторов. Массив вариаций пока что без многоуровневого вложения, то есть {|}, без {{|}|{|}} В интернете вариантов не нашел совсем. Все сводятся к заведомо известному количеству вариаций, то есть с коллизиями (это не подходит) По итогу я сам решил эту задачу. Рекурсивным массивом с foreach. Исходный текст разбивается на макросы, вместо скобок - $0, $1 по порядку. В рекурсивном массиве создается переменная временного текста, где номер цикла рекурсива определяет заменяемый макрос. Когда функция видит, что дальше нет макроса, то есть следующий по номеру массив с вариантами отсутствует, то сохраняет строку. После возвращается на цикл назад и так по новой. Я скинул бы скрины, но запрещено. Получается задача закрыта, уже кажется, что все просто, хотя казалось невыполнимым Основную рекурсивную функцию по итогу я сделал в 3 строчки 😳
Секунда тратится на 2 миллиона вариантов, то есть по оптимизации все идеально
122 строчка, тоже используется rand (а код в целом каша). В моем же решении и задаче rand внегласно запрещен. Такие дела 🙂
Обсуждают сегодня