Как в Python определить, какое рандомное число будет чаще всего появляться из списка значений, начиная от (00, 0 ,1 ,2 ... 36 )?

Недавно начал осваивать модуль random. Нужно сделать 1000 раз и выявить самое частое число, если можно в % отношении, или хотя бы какое количество раз.

Если ещё можно вывести не 1, а 5 самых частых чисел.

Проблема с 00, не понимаю как записать как число.


Ответы (2 шт):

Автор решения: Wairua

Если правильно понял, то так как-то:

from random import choice
from collections import Counter

if __name__ == '__main__':
    rnd = [
        '00',
        '0',
        '1',
        '2',
# ...
        '31',
        '32',
        '33',
        '34',
        '35',
        '36'
    ]

    rnd_list = [choice(rnd) for _ in range(1000)]

    d = Counter(rnd_list)
    print(d.most_common(5))
    print({a[0]: f'{a[1] / 1000 * 100:.1f}%' for a in d.most_common(5)})
→ Ссылка
Автор решения: MarianD
import random
from collections import Counter

MAX_NUM = 36        # 0, 1, ..., 36        (00 то же самое как 0)
RAND_NUMS = 1000    # сколько случайных
OUTPUT_NUMS = 3     # сколько нужно вывести

random_list = random.choices(range(MAX_NUM+1), k=RAND_NUMS)

print(Counter(random_list).most_common(OUTPUT_NUMS))

(00 то же самое как 0.)


Тест для MAX_NUM = 4, RAND_NUMS = 10 и OUTPUT_NUMS = 3:

In[217]: random_list = random.choices(range(MAX_NUM+1), k=RAND_NUMS)
In[218]: random_list
[3, 4, 2, 3, 1, 2, 2, 1, 3, 3]
In[219]: Counter(random_list).most_common(OUTPUT_NUMS)
[(3, 4), (2, 3), (1, 2)]

B %:

most_common = Counter(random_list).most_common(OUTPUT_NUMS)
most_common_perc = [(i, 100 * j / RAND_NUMS) for i, j in most_common]
print(most_common_perc)
[(3, 40.0), (2, 30.0), (1, 20.0)]
→ Ссылка