Предложение: Рандом для массивов по сиду

Nov 09, 2016 07:09

Было бы интересно написать функцию получения случайных элементов массива с привязкой к некоему "сиду", чтобы при одном и том же сиде последовательность для массивов с одинаковым количеством элементов была всегда одинаковой.

Например, мы имеем массив arr = [1, 2, 3, 4, 5].

Нам нужно случайно доставать из него элементы. Например, функция эта уже существует и называется extractRandomlyBySeed(int _index, string _seed).

Выполнив

seed = 'qwerty123'
for i in 1..10:
print arr.extractRandomlyBySeed(i, seed)

получим что-то типа

4 2 5 3 2 5 5 1 4 2

Фишка в том, что это мы будем получать каждый раз, когда будем вызывать функцию для массива с кол-вом элементов в 5 штук и с сидом qwerty123.

Как это может пригодиться на практике? Можно будет делать в одно движение такие классные штуки, как случайная еженедельная смена интересных тем на главной странице новостного сайта или подборок продуктов на странице интернет магазина. При этом никакого кэширования выбранных заранее продуктов или вмешательства человека не потребуется. Просто вставляешь в качестве сида номер недели от начала эпохи Линукса и все работает само по себе. 8)

программирование, предложение, идея, функция

Previous post Next post
Up