{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "43dfc145",
   "metadata": {},
   "source": [
    "独立同分布"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "ed4d2195",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "plt.rcParams['font.sans-serif'] = ['SimHei']   # 用来正常显示中文\n",
    "plt.rcParams['axes.unicode_minus'] = False      # 用来正常显示负号"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "54cc05fd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 800x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "最终频率 0.499\n"
     ]
    }
   ],
   "source": [
    "\n",
    "\n",
    "# 设置随机种子，保证每次运行结果一致\n",
    "np.random.seed(0)\n",
    "\n",
    "# 参数设置\n",
    "p_true = 0.5      # 真实的概率（正面朝上）\n",
    "N = 2000          # 模拟抛硬币的总次数\n",
    "\n",
    "# 生成模拟数据\n",
    "# np.random.rand(N) 生成 N 个 [0, 1) 之间的均匀分布随机数\n",
    "# 如果小于 p_true (0.5)，则视为正面 (True/1)，否则为反面 (False/0)\n",
    "flips = np.random.rand(N) < p_true\n",
    "\n",
    "# 计算累计频率\n",
    "# np.cumsum(flips) 计算累计正面次数\n",
    "# np.arange(1, N+1) 生成 1 到 N 的数组，代表抛掷次数\n",
    "freq = np.cumsum(flips) / np.arange(1, N + 1)\n",
    "\n",
    "# 绘图设置\n",
    "plt.figure(figsize=(8, 4)) # 设置画布大小\n",
    "\n",
    "# 绘制频率变化曲线\n",
    "plt.plot(freq, label='频率')\n",
    "\n",
    "# 绘制真实概率参考线 (绿色虚线)\n",
    "plt.axhline(p_true, color='g', ls='--', label='真p')\n",
    "\n",
    "# 坐标轴和标签设置\n",
    "plt.ylim(0, 1)             # Y轴范围固定在 0 到 1\n",
    "plt.xlabel('次数 n')       # X轴标签\n",
    "plt.ylabel('正面频率')     # Y轴标签\n",
    "plt.legend()               # 显示图例\n",
    "plt.title('大数定律：频率逼近 p') # 标题\n",
    "plt.grid(True, alpha=0.3)  # 显示网格，透明度0.3\n",
    "\n",
    "# 展示图像\n",
    "plt.show()\n",
    "print(\"最终频率\",freq[-1])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bbd08279",
   "metadata": {},
   "source": [
    "运行这段代码后，你会看到一张折线图。图表左侧(次数少时)线条剧烈震荡，随着次数增加，线条逐渐趋于平缓，最终稳定在0.5附近。这正是大数定律的直观体现。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1bc56964",
   "metadata": {},
   "source": [
    "样本的平均值会逐渐收敛于理论上的数学期望。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "75f38bdb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 800x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 设置随机种子\n",
    "np.random.seed(1)\n",
    "\n",
    "# 模拟掷骰子\n",
    "# 掷3000次，每次结果在1到6之间（包含1和6，因为是7的右开区间）\n",
    "rolls = np.random.randint(1, 7, size=3000)\n",
    "\n",
    "# 计算累计平均值\n",
    "# cumsum(rolls) 计算累计点数之和\n",
    "# arange(1, len(rolls)+1) 生成 1 到 3000 的次数数组\n",
    "means = np.cumsum(rolls) / np.arange(1, len(rolls)+1)\n",
    "\n",
    "# 绘图\n",
    "plt.figure(figsize=(8, 4))\n",
    "\n",
    "# 【注意】原图这里写的是 plot(mean, ...)，但上面定义的变量名是 means\n",
    "# 所以原图直接运行会报错，这里修正为 means\n",
    "plt.plot(means, color='#d97706')\n",
    "\n",
    "# 绘制理论期望值线 (掷骰子的期望值为 (1+2+3+4+5+6)/6 = 3.5)\n",
    "plt.axhline(3.5, color='g', ls='--', label='E=3.5')\n",
    "\n",
    "plt.xlabel('n')\n",
    "plt.legend()\n",
    "plt.title('样本均值 -> 期望')\n",
    "plt.grid(True, alpha=0.3)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "94158f5c",
   "metadata": {},
   "source": [
    "可以看到，在 n 较小时，由于随机性，均值波动很大（比如前几次运气好都是6，均值就很高）；但随着 n 增大到3000，橙色曲线会非常紧密地贴合在 3.5 这条线上。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bdee522d",
   "metadata": {},
   "source": [
    "蒙特卡洛法去估计$\\pi$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "bc9ca05c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAArAAAAGHCAYAAABI02E+AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAXHhJREFUeJzt3Qd8k9X+x/FfW7oolL33lCFDQAFRGQoC4kBFGQ5UXCAoCgrKdeDAKyhwVRQVB7jBP3IFRQRZThTZIEP2LnuU7uf/+p3eJyRp0qaQNE37efuKbZInyZPTJHxznt85J8yyLEsAAACAEBEe7B0AAAAAcoMACwAAgJBCgAUAAEBIIcACAAAgpBBgAQAAEFIIsAAAAAgpBFgAAACEFAIsAAAAQgoBFgAAACGFAAsA5ykpKUlWrlwpJ0+ePO/7ysjIkGPHjklaWpoE2tq1a2Xp0qXmMd0tX75cfv/9d4/XAUCwEWABFDqXXHKJLFmyxOWyEydOmOBon44fP+7z/W3fvl0uuugiWbZsmU/b6/3v2bPH43X79u2TUqVKyYIFC3K8n4MHD8rYsWPl0KFDLpfPmTNHJkyYkO1tNZgOGDBARo0aJSkpKeay9PR0SUxMNL8PHDhQhg0b5rhOtz916pRPzw8AAo0AC6DQ2bBhg+k1dda0aVMTHO1T1apVfb6/6Oho8zMqKsrlcsuyzOMkJye7XD5ixAjzeP/973+93ldMTEyOjztr1ix5/PHH5a+//nK5fP78+TJp0qRsb/vSSy+ZwP3zzz9LbGyshIeHS5EiRaRLly7y7rvvyh9//CG//vqr47qIiAipWLFijvsEAHmBAAug0NGgpidn2sM4btw4EzoXLlzoCJK+CAsLMz+vuOIK87t90uCnAfD555932f61116Ta665Rm644QZ5//335cyZM46eTg2Kzj91v7RXVHtH3X3xxRfStm1bEzqdxcfHm5M3n3/+uTz99NMyffp009Osj/Xee++Zx9J9HTx4sHz22WemjOH666+XPn36mHZJSEjwuU0AIJBcP8EBoBCww6WGMvv84cOHpVy5cud1v7Nnz5bWrVs7zuv9a/gsVqyYy3ZFixaVqVOnmrKDnj17Sq9evcxhf2eXX365y3ntEW3VqpVLjaqWGej97Nq1y9FLqk6fPm3C5/79+x37ob3AJUqUML3L9erVMz2wN910k7n+gQceML2r2g4NGzaU0aNHy6233mque+SRR8z9KQ3jAJAfhFn2JzgAFGBap1q3bl3Ts6qhUg/3p6amyrx586R48eLSpk0b+eeff6R27dqyePFi6d69u6xYsUIiIyOlQoUKJnRmd9+1atUyA6Iuu+yyHOtWtSezcePGjss0PCsNoNojWrNmTfnuu+/MPmmvqJYhlC1b1qVEQYPv119/LTt37pTOnTvLxo0bc2yDMWPGmPIFmw7S0p7gnJQsWVK2bNmS43YAkFfogQVQKGgP46JFi0wI1EPuGuY0RFapUsWEwZtvvtmEV6U/tddUr9eezNWrV0uTJk0c96WH/A8cOOA4v3v3bvNTezw1zDqrXLmyS/B8+eWX5c033zSH6ocPH256PcuUKZNlf/XxNTh6ogFbw6vS2//2228maNs9sC+88IIJwFrfqrSfQp+Hfb1Ne201PGutq7f6Vu3hffvtt+V8fPjhh3LXXXd5vV57hnVgGwD4igALoFDQQVF276jWv+qhcq1Z1Z7Fdu3audSpVqtWzSWgutMgrD207rQUwJ37oX+ts9XApj2h+tgTJ040QVJDrl1L6057irVGNi4uzvTG6iF/nUnBnvXAPejq89P7ymkgmD6u0udi/+5OH6906dJyPq677jrTm60lE99//72UL1/eXP7LL7+YGuAPPvjgvO4fQOHDIC4AhdKUKVOkefPmsnnzZtPDqPWvzgOw7DpZTwOX7B7Vbdu2md5NTye9X+dtbXqfzzzzjPzf//2fmcLq9ttvN0FTL9fH1BpVuwbW3g+9jxo1apjLP/roI7NPGnzPl90jqz3MOhWXp5P2GHsLt77SAKxtrRo1amR+15Pd0+3cuw0AvqAHFkCh8Pfff5tR99oDeOTIETMI6rbbbjM9mVr72qxZMzMtlV1GoAOZNm3a5HFgl3sozY4e2vdEZyBQGp7feOMNU5urYVXrXhs0aGAOu9u099Ve2KB///7mevdD/vo8tLfXmXOP7vr1602vszN7kQItlfDW+6uPrfW3AJCfEGABFApHjx41k/sPGjRI1qxZY+ZJ7dChg7lOa1A7duxoDnN36tTJ1LhqDam3Xk47+Nm1r57YCxVkt6KWli3oIKoWLVqY87q4gg7G0t5hb/WvGnTbt2+fpdZWywYefvhhM2uAM91H7c11nzZM2VNzrVu3zuu8txqudcYCAMhPCLAACgWdL1V7WjUYeprk/8YbbzSBcsiQIeanDu7yVNOq7EUQ3Ke68sR9EQOb9gBrL2/Lli0dl+ngK+0V1ppcvZ2WF4wcOdLUjvrS06vPTWcw8Ha9pwCr9bgXXnihmZlBe2Gdp8rS1cm0vMGuWQWA/IIAC6DQ8NarqTQ4vvLKKybI/vDDD/LTTz95Payuh++9zUColzvfTgdgudNeWV3GVQOyPRhMV+VatWqVOdRv97Rqr6nOjqBhN7t9V556WL1dr7Wtup9aimD35Pbr18+Edm0DW506dUyY79u3r+nB1ueigTa7RRJyQ9vp5MmTsnfvXjNbAwD4ikFcAPC/wVXa86mLEeisAe71ojYtM9ABSLoKlk791KNHD8eALQ29elu711VrbrU8wF5ly6aDuHQGgldffdWc37p1q9x7771mei3nKbV0SVcdaKXXeStjsIO09qZqba/er/Npx44djuttd9xxh5lpQQeGaY+tnr799lv5+OOPHef1pKF12LBhjvO6/euvvy7+Ur16dRPYdWAXAOSKLmQAAIXB8ePHrV27dlnR0dHWokWLzGVJSUnWrFmzrDZt2lhly5a1xowZYzVp0sT8PnjwYGvmzJnW33//7biPe+65x6pevbqVkpJiZWRkWHXq1LGGDBlirjt48KBVrFgx65VXXjHnt2/fbsXGxlqjR4923P6bb76xwsPDzeOoQ4cOWWXKlDH71LlzZ6t169ZWgwYNrEqVKllFixa1YmJizPaTJ092eS66T/oRro+hLr30UnPe22nz5s1e20X3Vx9nx44dLpeXLFnSmjJlih9aHgD8ix5YAIXGk08+aXoetbdVV+XSif51iiddUlUPp2tvoM7PunLlSvn3v/9t5inVRQ500QOlPa06sb8uQKA1pXoIXGcF0KmttIZUZywYOHCgmXrq1KlTpsdSezD19nZPqPbg6qH5oUOHmvPa46rzpOrgMp2ZQGtedQYCfWxdtUsHlOnArC+//NLludgT/9v1uFqWoD277tN56VRfnkoZtHdVp/K66qqr5Omnn5ZPP/3U9Ig609t4KoEAgGBjKVkAhYbOPqA1nzrllC4Pq9577z2zMpd7eLPpYXidq1TrXnft2mVmJtDBVvYiATrVlq6E1adPHxNqdfaB+fPnmwFYGpQ1KOoofg2m9oIAOjgqN3Wkp0+fdtTEerNv3z4zACunWlnbggUL5Prrr5drr73WDCarV69elm30MXXhhcGDB/u8rwCQFwiwAFBIae9tTqt1AUB+RIAFAABASKEGFgAAACGFAAsAAICQQoAFAABASCk0K3HppN+62kvx4sW9rq4DAACA4NGhWbpCn67OpzO5SGEPsBpedf5HAAAA5G86bWHVqlW9Xl9oAqz2vNoN4q91vHPq8U1ISDATm2f3DaIwom08o108o128o208o128o208o13yT9voPNna4WjnNinsAdYuG9DwmlcBVudY1MfizeCKtvGMdvGMdvGOtvGMdvGOtvGMdsl/bZNTuSd/JQAAAIQUAiwAAABCCgEWAAAAIaXQ1MACAIDCMxVTWlqapKen+1znmZqaamo9qYENbNtERERIkSJFzntKUwIsAAAoMFJSUmTfvn2SmJiYq8CrQU3nH2Wu+MC3TdGiRaVSpUoSFRV1zvdBgAUAAAWCBq1t27aZXj6dCF8Dki+hy+6x9UfPYEFj+bFt9L70C4ZOy6V/p3r16p1zr26+CLBdu3aV3r17S//+/bPdbsaMGfLYY4+ZruxXX31V+vTpk2f7CAAA8jcNRxpidR5R7eXzFQE279omNjZWIiMjZceOHebvFRMTc073E/RCj08++US+//77HLdbu3at9OvXT/71r3+Z7Z9++mnZuHFjnuwjAAAIHdSxFvy/T1D/wkeOHDE9qhdccEGO27733nvSsWNHGTBggDRp0kQeeughmTZtWp7sJwAAQH6UkJBgjky7O3TokE85zJn2iJ46dUpCQVADrIbXnj17Sps2bXLcdtWqVdKpUyfH+UsuuUSWL18u+dV/V+2VhVuOypkU30ZAAgAA3HnnnfLxxx87zicnJ0urVq1kw4YNWbZNSUkxZZgvvviiOa/lE7r90aNHTefgO++841J76kxnFahTp47MmjXLcdmSJUvMkrFnzpyR/C5oNbALFy6UBQsWyLp162Tw4ME+rY1bq1Ytx3ld0mzv3r1et9c/oJ6cb2//cfUUaI98scr83HbckhHdGgT88UKJtr89qhFn0S6e0S7e0Tae0S6Ft23s52efcsPePre386cDBw6Y0ko92mzvhw5EW7NmjalBdd63jIwMueeee8yMC5MnT5bx48dLlSpVTHDVQWxxcXEyZswYefjhh01+0lH/8+fPd9xeg2v58uVNT63WDOttNNRqb27Dhg3NNlr7OnLk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+szx1DaBeP6h9t7y1C7ePm9UYfnM+cbL+ybUP2coIfCzVatWSZs2baRo0aLmfNOmTWX9+vVSUPXo0UPuu+8+x/mNGzdKvXr1ZM2aNZKRkWEOVcTGxkrXrl1l586dObaRXtexY0dzKEddcsklsnz5cgk13p7/uT53va5Tp06O+w/VdnGXlJQkEydOlCeffFKWLVsm6enpZsnnuLg46d27txw9erTAt827775rDv06C8TrJNTayVO7ePu8UYXpM8dT2wTi+ReE14y3zxtVWD5zenh534T65wwB1s9OnDhh6m9s+sePiIhwvCkKspSUFHn11VflgQceMG+CCy64QKZNmyarV682dTf2Gyi7NnK/Ttdd3rt3r4Qab8//XJ97QWkXd59++qm0bt1aatasKX///bc0a9ZM5syZI7/99pts27ZNRo4cabYryG3jvO+2QLxOQq2dPLWLt88bVZg+czy1TSCef0F7zTh/3qjC+JmT4vS+CfXPmSIBuddCTD803FeriImJkcTERFMkXZDpSh36LXbAgAESGRkp/fr1c1w3adIk86LWF3d2beR+nX15qNHn7un5a0H8uTz3gtIu7t5++2159tlnze/6D4f9j4caO3as3HjjjWabwtY25/oeKUzt5Px5k917rrB/5pzP8y8obePp86awfuY84/S+GTVqVEh/ztAD62elS5eWhIQEl8tOnjwpUVFRUpDpSEMdeajfcDW8uitfvrw5vLVv375s28j9uoLSdvbzr1ix4jk994LYLlu2bDGnzp07e22zw4cPS3JycqFrm3N9jxSWdsrp80bxmXP+z78gtU1OnzeF4TPnR7f3Tah/zhBg/Uyno/j1118d5/WQhP1mKKj0Ofbp08e8MRo1amQu0+k49E1i0zYJDw+XatWqZdtG7tetWLFCqlSpIqHG2/Nv0qTJOT33gtIuzr788ktTm2UHkFtvvVV++uknx/X6fHUqFv02X9ja5lzfI4WhnTx93ig+c/z//AtK23j6vClsnznbPLxvQv5zJiBDwwoxHQlarlw5x1QUAwYMsHr06GEVVImJiVajRo3MqE4d/Wqfpk6daqbPmD9/vvX9999b9evXt/r3759jG+k0KDoFxw8//GClpKRYXbt2tR566CEr1EybNs3j8z/X566jQ+Pi4syUJdq+zZs3t8aNG2eFsssvv9yaMmWK4/zzzz9v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",
      "text/plain": [
       "<Figure size 800x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 设置随机种子，保证结果可复现\n",
    "np.random.seed(2)\n",
    "\n",
    "# 模拟投点总次数\n",
    "n = 20000\n",
    "\n",
    "# 在 [0, 1) x [0, 1) 的正方形区域内随机生成 n 个点 (x, y)\n",
    "# xy 的形状为 (20000, 2)\n",
    "xy = np.random.rand(n, 2)\n",
    "\n",
    "# 判断每个点是否落在半径为 1 的 1/4 圆内\n",
    "# 条件：x^2 + y^2 <= 1\n",
    "inside = (xy[:, 0]**2 + xy[:, 1]**2) <= 1\n",
    "\n",
    "# 估算 pi 值\n",
    "# 正方形面积 = 1，1/4圆面积 = pi/4\n",
    "# 所以 pi ≈ 4 * (落在圆内的点数 / 总点数)\n",
    "# 使用 cumsum 和 arange 计算每一步的累计估算值，以观察收敛过程\n",
    "pi_est = 4 * np.cumsum(inside) / np.arange(1, n + 1)\n",
    "\n",
    "# 绘图设置\n",
    "plt.figure(figsize=(8, 4))\n",
    "\n",
    "# 绘制 pi 的估算值随投点次数变化的曲线\n",
    "plt.plot(pi_est)\n",
    "\n",
    "# 绘制真实的 pi 值作为参考线（绿色虚线）\n",
    "plt.axhline(np.pi, color='g', ls='--')\n",
    "\n",
    "# 设置标题（原图未显示完整，这里补全）\n",
    "plt.title('投点法估算 π')\n",
    "\n",
    "# 补全原图截断的部分：坐标轴标签、图例、网格和显示\n",
    "plt.xlabel('样本数:投点次数 n')\n",
    "plt.ylabel('π 的估算值')\n",
    "plt.legend(['估算值', '真实 πi']) # 添加图例\n",
    "plt.grid(True, alpha=0.3)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "edf4d172",
   "metadata": {},
   "source": [
    "运行这段代码后，你会看到一条剧烈波动的曲线。在$n$较小时(左侧),估算值偏离$\\pi$较远；随着$n$增大\n",
    "(向右移动),曲线会逐渐收拢，最终在 3.14159...(绿色虚线)附近趋于平稳。\n",
    "这同样是大数定律的一个经典应用：当随机试验的次数足够多时，事件发生的频率会收敛于其理论概率(或\n",
    "\n",
    "面积比)。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "83f614d8",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "估计 3.1382 真π 3.141592653589793\n"
     ]
    }
   ],
   "source": [
    "print('估计', pi_est[-1],'真π', np.pi)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8613076e",
   "metadata": {},
   "source": [
    "样本均值的标准差（标准误）与样本量 n的关系"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "ba46b9cd",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "n=  10 均值的标准差≈0.1496 (理论≈0.5/sqrt(n)=0.1581)\n",
      "n= 100 均值的标准差≈0.0495 (理论≈0.5/sqrt(n)=0.0500)\n",
      "n=1000 均值的标准差≈0.0161 (理论≈0.5/sqrt(n)=0.0158)\n"
     ]
    }
   ],
   "source": [
    "def mean_spread(n, trials=500):\n",
    "    # 修正 1: 将 rnage 改为 range\n",
    "    # 生成 trials 组样本，每组样本量为 n\n",
    "    # 计算每组中 (随机数 < 0.5) 的比例（即均值），返回一个长度为 trials 的数组\n",
    "    return np.array([(np.random.rand(n) < 0.5).mean() for _ in range(trials)])\n",
    "\n",
    "# 修正 2: 增加循环的缩进\n",
    "for n in [10, 100, 1000]:\n",
    "    s = mean_spread(n)\n",
    "    # 打印当前样本量 n、实验得到的标准差、以及理论标准差\n",
    "    print(f'n={n:4d} 均值的标准差≈{s.std():.4f} (理论≈0.5/sqrt(n)={0.5/np.sqrt(n):.4f})')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "407ee903",
   "metadata": {},
   "source": [
    "实验得出的标准差(s.std())非常接近理论值(0.5/np.sqrt(n))。这直观地展示了：随着样本量$n$的增加，样本均值的波动(标准差)会以$\\frac1{\\sqrt{n}}$ 的速度减小。也就是说，样本量越大，用样本均值去估计总体真实概率就越精确、越稳定。"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
