import random as rnd
import numpy as np
import matplotlib.pyplot as plt

def random_variable_simple(A,P):
    '''
    A - Список значений
    P - Список вероятностей
    len(A) = len(P) = 3
    '''
    x = rnd.random() # Возвращает случайное значение равновероятно из полуинтервала [0,1)
    if x < P[0]: return A[0]
    elif P[0] <= x < P[0] + P[1]: return A[1]
    else: return A[2]
def plot_frequency(X):
    labels, counts = np.unique(X, return_counts=True) # Находим количество значений каждого типа
    plt.bar(labels, counts/len(X), align='center', alpha=0.5) # Рисуем соответствующие столбики

A = np.array([-1, 2,3])
P = np.array([0.3, 0.2, 0.5])
n = 100
R = np.array(np.arange(n))
X = np.array([random_variable_simple(A,P) for _ in R])
print(X)
plt.figure(0)
plt.scatter(X,R,marker='.'); # Рисуем выборку в виде точек
plt.figure(1)
plot_frequency(X)