Генератор чисел с НЕравным процентом выпадения чисел

Генератор чисел с НЕравным процентом выпадения чисел  

  By: KRimZeD on 2019-01-30 20 ч.

Генератор чисел с НЕравным процентом выпадения чисел

Здравствуйте, нужна программа, простейшая, желательно в обычном блокноте с генератором цифр от 1 до 23. При этом увеличить шанс выпадения цифры 3 и 20 на 30%. Очень нужна помощь знающих людей, прошу помочь. Так же, если есть возможность, то как-то зашифровать то что увеличин процент выпадения, а то человек немного прошаренный, но даже за старания оценит)


Развиваюсь в ветвь психологии :D

Генератор чисел с НЕравным процентом выпадения чисел  

  By: Maddoc on 2019-01-31 02 ч.

Re: Генератор чисел с НЕравным процентом выпадения чисел

На каком языке хоть?

А обфусцировать можно легко. Как вариант - помимо Math.Random используй еще какойнибудь самопальный генератор случайных чисел. Причем сделай его честным, а жульничай уже на части преобразования в единое число а еще лучше псевдохаш и обратно. Тут все зависит насколько шарит тот тип.

Генератор чисел с НЕравным процентом выпадения чисел  

  By: ДикийДжо on 2019-01-31 06 ч.

Re: Генератор чисел с НЕравным процентом выпадения чисел

KRimZeD, Не сложный код, думаю на питоне смог бы написать что то подобное.

Генератор чисел с НЕравным процентом выпадения чисел  

  By: Лоцман on 2019-02-06 07 ч.

Re: Генератор чисел с НЕравным процентом выпадения чисел

Написать то такое чудо проще простого, но вот есть ошибка в условии.
Мы геним числа от 1 до 23. Вероятность выпадения каждого из них - чуть больше 4%. Если мы увеличим вероятность выпадения 3 и 20 на 30%, то мы получим в 70% случаев 3 или 20, и в оставшихся 30% остальные 21 число. Выглядит некрасиво, причём очень. Любой дурак заметит такое.

А так, можешь сделать примерно так:

k = 0.3 // Вероятность выпадения приоритетных чисел
m = range(1, 23+1) // Массив возможных чисел
n = len(m) // Длина массива
p = [3; 20] // Приоритетные числа
np = len(p)

***
Важно!!!
k*np<1
***

v = (1-np*k)/n // Вероятность выпадения остальных чисел

a = random(0.0, 1.0) // Собственно генератор чисел

ap = a/k
if (ap<np):
    return p[round(ap)]
else:
    a = a - np*k
    return p[round(a/v)]

Внисание! Любые совпадения с реальным языком программирования являются случайными!

Генератор чисел с НЕравным процентом выпадения чисел  

  By: kesha1225 on 2019-06-11 00 ч.

Re: Генератор чисел с НЕравным процентом выпадения чисел

Вот пример тру рандома на python где у всех чисел по 4.3% выпадения, менять проценты можно как угодно с сохранением пропорции

import random

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]


unrandom_number = random.choices([numbers], weights=[4.3, 4.3, 4.3, 4.3, 4.3, 4.3, 4.3, 4.3, 4.3,
                                                     4.3, 4.3, 4.3, 4.3, 4.3, 4.3, 4.3, 4.3, 4.3,
                                                     4.3, 4.3, 4.3, 4.3, ])

Можно прибавлять шанс без вычитания у остальных, правда нужно понимать как оно устроено и что общее число которое будет "100%" вырастет.

Генератор чисел с НЕравным процентом выпадения чисел  

  By: Nyash_Kun on 2019-06-11 20 ч.

Re: Генератор чисел с НЕравным процентом выпадения чисел

kesha1225 пишет:

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]

А не проще numbers = range(1,23)?


Какой-то школьник, который попытается помочь вам в рамках своей компетенции. Увлекаюсь программированием и юриспруденцией

[email protected]                                                                                                                                                     PGP