Casino_Plus это Библиотека C ++ Для создания как равномерных, так и неравных случайных распределений. Хорошая вещь в этой библиотеке есть, у него есть Привязки языка Python Кроме того, вы также можете использовать его в ваших проектах Python.
Эта библиотека имеет очень простой в использовании интерфейс для программистов Python, также это действительно быстро.
В этой статье я хочу показать вам, как использовать привязки Python этой библиотеки. Итак, давайте начнем
Установка
Процесс установки довольно прост. Вот требования:
- Визуальные инструменты сборки C ++ 2017 или выше
- Cmake версия 3.8 или выше
Вот GitHub Repo:
Amohammadi2/casino_plus.
Создать равномерное и неоднородное распределение
Сначала продолжайте и клонируйте репозиторий:
$ git clone https://github.com/Amohammadi2/Casino_plus.git
Тогда, CD
В корневой каталог проекта вы можете найти файл setup.py. (Установка подтверждена на Python версии 3.8)
$ python setup.py install
Если у вас есть необходимые инструменты, установка завершится успешно.
Как это использовать
Вы должны импортировать модуль, прежде чем вы сможете использовать его, напишите следующий код в файле Python:
import CasinoPlus
Модуль содержит класс под названием Казинорандомгенератор
Но из-за ограничений системы типа C ++ есть несколько префиксов, которые вы должны использовать на основе типа данных, которые вы хотите перейти к генератору.
- S_: для генераторов, содержащих строки
- CS_: для генераторов, содержащих символы
- I_: для генераторов, содержащих ints
- F_: для генераторов, содержащих поплавки
- d_: для генераторов, содержащих двойников
Например, вы могли бы использовать: S_CASINORANDOMGENERATOR
Чтобы создать генератор, который принимает строковые элементы
В то время поддерживаются только упомянутые выше типов. Мы постараемся улучшить его и сделать его более общим.
Добавление элементов к генератору
Чтобы добавить элементы к генератору, вы должны использовать один из методов Добавьте предмет
или Add_sequence
Отказ
add_item (item: item_type, вероятность: int) - > Никто
: Добавляет один элемент для генератора с указанной вероятностью. Для равномерных распределенийвероятность
Может быть установлен на 1 для всех элементов, но если вы хотите создать неравные случайные распределения, вы можете изменить это значение. Например, если вы хотите, чтобы элемент появился чаще, вы можете увеличить вероятность. Вероятность не может быть отрицательным значением Отказadd_sequence (элементы: список [кортеж [item_type, int]]) - > Никто
: Можно добавить несколько предметов одновременно. Оптимально использовать эту функцию, когда вы хотите добавить несколько элементов на генератор.
Обратите внимание, что Item_type
На самом деле тип данных, который использует генератор, например, если вы используете S_CASINORANDOMGENERATOR
Тогда item_type будет ул ...| Отказ
Получение случайного предмета из генератора
Для того, чтобы получить случайный элемент, вы должны использовать get_random_item
метод. Имеет следующую подпись:
get_random_item() -> Item_Type
пример
Вот пример программы, которая использует все функциональные возможности казиноплауса.
>>> from CasinoPlus import s_CasinoRandomGenerator as strgen >>> >>> rand = strgen() >>> rand.add_item("Ashkan Mohammadi", 1) >>> my_brothers = [["Arshia Mohammadi", 1], ["Ilia Mohammadi", 1]] >>> >>> rand.add_sequence(my_brothers) >>> rand.get_random_item() 'Ilia Mohammadi' >>> rand.get_random_item() 'Ashkan Mohammadi' >>> rand.get_random_item() 'Arshia Mohammadi'
Оригинал: “https://dev.to/ashkanmohammadi/casinoplus-an-easy-way-to-create-uniform-and-non-uniform-random-distributions-2g28”