{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "#"
      ],
      "id": "b3adcecb-0922-4c43-a45a-e413a6eaa5a6"
    },
    {
      "cell_type": "code",
      "execution_count": 1,
      "metadata": {},
      "outputs": [],
      "source": [
        "import numpy as np"
      ],
      "id": "428bd8dc-cf64-4478-83b9-a3e1fdd4d9ad"
    },
    {
      "cell_type": "code",
      "execution_count": 2,
      "metadata": {},
      "outputs": [],
      "source": [
        "class BernoulliDistribution():\n",
        "    def __init__(self, seed = 0, p = 0.5):\n",
        "        self._rng = np.random.default_rng(seed)\n",
        "        self._p = p\n",
        "\n",
        "    def rvs(self, size = 1):\n",
        "        return self._rng.binomial(1, self._p, size = size)"
      ],
      "id": "d0d41263-0735-48b5-a695-e1694f36f0ea"
    },
    {
      "cell_type": "code",
      "execution_count": 3,
      "metadata": {},
      "outputs": [
        {
          "output_type": "display_data",
          "metadata": {},
          "data": {
            "text/plain": [
              "array([1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0])"
            ]
          }
        }
      ],
      "source": [
        "B1 = BernoulliDistribution()\n",
        "B1.rvs(size = 10)\n",
        "\n",
        "p = 0.25\n",
        "seed = 155\n",
        "B2 = BernoulliDistribution(seed = seed, p = 0.77)\n",
        "B2.rvs(size = 22)"
      ],
      "id": "9ba725ad-5746-43e1-8127-84dcf2fa20c4"
    }
  ],
  "nbformat": 4,
  "nbformat_minor": 5,
  "metadata": {
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3 (ipykernel)",
      "language": "python"
    },
    "language_info": {
      "name": "python",
      "codemirror_mode": {
        "name": "ipython",
        "version": "3"
      },
      "file_extension": ".py",
      "mimetype": "text/x-python",
      "nbconvert_exporter": "python",
      "pygments_lexer": "ipython3",
      "version": "3.12.12"
    }
  }
}