[ /tv/ /rf/ /vg/ /a/ /b/ /u/ /bo/ /fur/ /to/ /dt/ /cp/ /oe/ /bg/ /ve/ /r/ /mad/ /d/ /mu/ /cr/ /di/ /sw/ /hr/ /wh/ /lor/ /s/ /hau/ /slow/ /gf/ /vn/ /w/ /ma/ /azu/ /wn/ ] [ Main | Settings | Bookmarks | Music Player ]

No.27539 Reply
File: 300px-PythonScience_-_Random_-_Uniformly_distribut.png
Png, 44.26 KB, 300×226 - Click the image to expand
edit Find source with google Find source with iqdb
300px-PythonScience_-_Random_-_Uniformly_distribut.png
Подскажите как лучше организовать следующую идею.
Из фиксированного диапазона выбирается случайное число.
При следующем выборе, уже выпавшее число возвращается с уменьшенной вероятностью.

Мой вариант:
Имеется файл с колличеством нулей, соответствующим диапазону чисел.
После того, как из диапазона выбирается случайное число, и проверяется, равно ли соответствующее число из файла нулю.
Если нет, то число из файла уменьшается на 1 (во временной копии), а затем функция запускается повторно.
Если да, то соответствующее случайное число возвращается как результат.

Когда функция возвращает какое-то число, соответствующее чесло из файла увеличивается на 1, чтобы в другой раз выйти с уменьшенной вероятностью.

Надеюсь, понятно описал.
c:добрые раскрасить - намекает на что-то интересное.
>> No.27542 Reply
>>27539
Нет, непонятно. Ты попытался смешать требования с реализацией. Не надо так делать, опиши только то, что требуется.
>> No.27544 Reply
>>27542
Имеется диапазон чисел.
Нужно, чтобы выбиралось случайное число из этого диапазона.
Причём если конкретное число ранее получалось с помощью этой функции, оно должно в дальнейшем возвращаться с меньшей вероятностью.
>> No.27545 Reply
>>27544
Вернее, после того, как функция возвращает число, должна понижаться вероятность того, что оно выпадет в дальнейшем.
>> No.27546 Reply
>>27539
> При следующем выборе, уже выпавшее число возвращается с уменьшенной вероятностью.
Но зачем?
>> No.27547 Reply
>>27546
Чтоб генерить полурандомные условия для партии в какой-нибудь игре.
>> No.27548 Reply
>>27547
Сколько чисел в диапазоне, что это за числа?
>> No.27549 Reply
>>27548
Произвольне диапазоны (по большей части меньше 10).
Диапазон - количество вариантов для выбора.
Конкретное число - номер варианта.
>> No.27550 Reply
>>27549
> Произвольне диапазоны (по большей части меньше 10).
define:"диапазон меньше натурального числа"
> Диапазон — количество вариантов для выбора.
Если ты решил придумать собственный термин, то придумай для него и собственное название, потому что слово "диапазон" уже имеет значение и это не "количество".
Диапазон — интервал значений какой-либо величины.
Интервал — множество значений, заключённых в некоторых границах.

И к предыдущему вопросу я забыл ещё спросить, сколько значений из интервала планируется выбирать (то есть сколько "выбранных" значений нужно запоминать).
>> No.27562 Reply
>>27550
Не придирайся. Можно сформулировать так:

Дано конечное множество T. Написать f(n) (n есть натуральное число) такую, что для данного t из T и натурального n вероятность равенства f(n)=t тем меньше, чем больше раз t возвращается при значениях аргумента f, меньших n.
>> No.27563 Reply
>>27539
Не понял твой вариант реализации. Предлагаю такой:
1. Для N твоих элементов есть массив из N чисел, которые изначально все равны X.
2. Находишь случайное число от 0 до суммы всех чисел в массиве (для первого раза N * X).
3. Возвращаешь число для которого сумма чисел из массива для предыдущих элементов включительно больше случайного числа.
4. Уменьшаешь для возвращаемого элемента значение в массиве на определенную величину
Пример:
[A, B, C, D]
[1, 1, 1, 1]
Случайное число из промежутка [0, 4)
2.4356
3 > 2.4356
вернуть C
[A, B, C,   D]
[1, 1, 0.1, 1]
Случайное число из промежутка [0, 3.1)
// вероятность попасть в промежуток для С теперь значительно ниже
... и так далее
>> No.27567 Reply
>>27563
Интересная реализация. Наверно это ОПу подойдёт.
>> No.27568 Reply
>>27563
Восхитительно!
Так и сделаю, большое спасибо.


Password:

[ /tv/ /rf/ /vg/ /a/ /b/ /u/ /bo/ /fur/ /to/ /dt/ /cp/ /oe/ /bg/ /ve/ /r/ /mad/ /d/ /mu/ /cr/ /di/ /sw/ /hr/ /wh/ /lor/ /s/ /hau/ /slow/ /gf/ /vn/ /w/ /ma/ /azu/ /wn/ ] [ Main | Settings | Bookmarks | Music Player ]