{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "4d64a012",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "import numpy\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ad843394",
   "metadata": {},
   "source": [
    "**problema A**\n",
    "\n",
    "un sacchetto contiene lo stesso numero di dadi a 4, 6, 8, 12 e 20 facce.\n",
    "\n",
    "un amico prende un dado dal sacchetto effettua dei lanci e vi riporta il risultato: [4,8,3,5,7,7]. stabilite la probabilità a posteriori che abbia estratto ciascuno dei dadi in questione."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "cacde387",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "esiti=[4,8,3,5,7,7]\n",
    "dadi=[4,6,8,12,20]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3ed55052",
   "metadata": {},
   "source": [
    "andiamo a descrivere la probabilità P(l|N) che dato un dado a N facce, l'esito di un lancio sia l e la probabilità P(L|N) che dato un dado a N facce otteniamo la serie di esiti L=$[l_1, l_2, ...]$\n",
    "\n",
    "$P(l|N)=\\begin{cases}\n",
    "1/N & l \\le N\\\\\n",
    "0   & l > N \\end{cases}$\n",
    "\n",
    "e semplicemente:\n",
    "$P(L|N)=\\prod P(L_i| N)$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "ee1fb7ed",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "def probdl(N,l):\n",
    "    if l<=N:\n",
    "        return 1/N\n",
    "    else:\n",
    "        return 0\n",
    "\n",
    "def probdL(N,L):\n",
    "    r=1\n",
    "    for l in L:\n",
    "        r*=probdl(N,l)\n",
    "    return r\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "f5a9352b",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.0"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "probdL(4,esiti)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "8a00ff04",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3.814697265625e-06"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "probdL(8,esiti)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "af0c734f",
   "metadata": {},
   "source": [
    "**applichiamo la legge di Bayes**\n",
    "\n",
    "$P(N|L)=\\frac {P(L|N)P(N)}{P(L)}$\n",
    "\n",
    "possiamo calcolare il difficile termine $P(L)$ a posteriori come fattore di normalizzazione.\n",
    "perciò calcoleremo la probabilità non normalizzata:\n",
    "\n",
    "    $p(N|L)=P(L|N)P(N)$\n",
    "\n",
    "useremo un apriori piatto, P(N)=const=1/5, ma siete invitati a provare delle posizioni differenti."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "2f7b254c",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{4: 0.0,\n",
       " 6: 0.0,\n",
       " 8: 7.62939453125e-07,\n",
       " 12: 6.697959533607681e-08,\n",
       " 20: 3.125000000000001e-09}"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "p_N={N:probdL(N,esiti)/5 for N in dadi}\n",
    "p_N"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "7cd5328e",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "8.330440484610768e-07"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#andiamo a normalizzare\n",
    "norm=sum(p_N.values())\n",
    "norm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "a1739cdf",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{4: 0.0,\n",
       " 6: 0.0,\n",
       " 8: 0.91584527196901,\n",
       " 12: 0.08040342579700498,\n",
       " 20: 0.0037513022339850663}"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "P_N={N:p/norm for N,p in p_N.items()}\n",
    "P_N"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b528be51",
   "metadata": {},
   "source": [
    "***\n",
    "## esercizio\n",
    "\n",
    "avete catturato 8 carri armati nemici, che hanno i numeri di serie [5, 15, 25, 35, 45, 55, 65, 75], \n",
    "volete stabilire la credibilità che i nemici abbiano un certo numero di carri armati. \n",
    "sapete che i numeri di serie sono consecutivi e ritenete che non abbiano più di 300 carri.\n",
    "\n",
    "- stabilite un modello non informato per la probabilità a priori e trovate il massimo e la media della distribuzione di probabilità corrispondente. potete considerare il campione sufficientemente diluito che le probabilità dei singoli numeri di serie siano indipendenti.\n",
    "\n",
    "- usate un modello informato, dovuto a una stima indipendente dei vostri alleati: \n",
    "$P(N)= e^{-(N-90)^2/10}$ "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "e12bfaf9",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "L=[5, 15, 25, 35, 45, 55, 65, 75]\n",
    "pncarri=[probdL(N, L) for N in range(300)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "3123e014-e953-4a0d-9e7b-1cc817ecbb81",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "28b89db8-8855-4d0d-90a5-f9f41f76d4b1",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7fa0703c3350>]"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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hRRGzp07p6amJiUnJwcdT05OVnFxcbuv+eCDD/Tss8+qqalJL730ktauXatHH31UP/7xjzu8Tm5uruLj4+1Henp6KM3EAHGlqb2BMSMMYAWA8Nbrs2n8fr+SkpL0q1/9SrNmzdKSJUv0gx/8QJs3b+7wNWvWrFFZWZn9OHHiRG83EwYKLHrW8ZgRdu4FABOENGYkMTFRHo9HJSUlQcdLSkqUkpLS7mtSU1MVGRkpj8djH7vmmmtUXFys+vp6eb3eS17j8/nk8/lCaRoGILsy0kEYCSx65reaA8mQQZd+1wAAzgupMuL1ejVr1izl5eXZx/x+v/Ly8pSZmdnua6677jodOXJEfr/fPvb+++8rNTW13SACdFagMtLR1N5Ij1txUc15+3wVXTUAEK5C7qbJycnRE088oaeffloHDhzQypUrVVVVZc+uWbp0qdasWWOfv3LlSl24cEF333233n//fb344ot66KGHtGrVqp77FBiQrrRRniQNbamGMG4EAMJXyFN7lyxZorNnz2rdunUqLi7WjBkztGPHDntQa1FRkdzu1oyTnp6uv/71r7rnnns0bdo0jRgxQnfffbfuvffenvsUGJCsK/XTqDmMHD9frQtURgAgbIUcRiRp9erVWr16dbvP5efnX3IsMzNTr732WlcuBXToSrNppNbKCGEEAMIXe9PAWFeaTSO1DmIljABA+CKMwFidqowMbhkzQhgBgLBFGIGxrrRRniQNpTICAGGPMAJjdaqbJjBmhNk0ABC2CCMwVms3TcdpZNggumkAINwRRmAsqxODRgKVERY9A4DwRRiBsayW2shlB7DGUBkBgHBHGIGx7BVYL5NGArNpquqbVNvQ1AetAgCEijACY3VmzEisL0IR7ubnWRIeAMITYQTGsjfKu8y32OVytc6ooasGAMISYQTGat0o73KjRlpn1BBGACA8EUZgLHsA6+WzCEvCA0CYI4zAWPbU3itgszwACG+EERirdTbNFbppBhNGACCcEUZgrM5slCdJwwb5JEnnKut6tT0AgK4hjMBYndmbRpISY5srI2crqIwAQDgijMBYndm1V5ISB1MZAYBwRhiBsTqzHLzUGkbOVxFGACAcEUZgrM4sBy9JiS0DWM/RTQMAYYkwAmO1zuztXDdNTUOTquoae7VNAIDQEUZgrM5WRgb5IhQd6ZHEuBEACEeEERir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54qLi5WUlBT0fEREhIYOHTog79/8+fP1pS99SWPGjNHRo0d1//33a8GCBSooKJDH4xmw98vv9+vb3/62rrvuOk2ZMkWSOvVnr7i4uN3vX+C5/qi9eyVJt912m0aNGqW0tDS99dZbuvfee3Xo0CH94Q9/kDTw7tXbb7+tzMxM1dbWavDgwXruuec0efJk7d+/P2y+VwMyjKBjCxYssH+eNm2aMjIyNGrUKP3ud79TdHS0gy1Df/OVr3zF/nnq1KmaNm2axo0bp/z8fM2dO9fBljlr1apVeuedd4LGaqF9Hd2rtuOKpk6dqtTUVM2dO1dHjx7VuHHj+rqZjps4caL279+vsrIyPfvss1q2bJl27drldLOCDMhumsTERHk8nktGDJeUlCglJcWhVoWnhIQETZgwQUeOHFFKSorq6+tVWloadA73Tfbnv9x3KiUl5ZIB0o2Njbpw4cKAv3+SNHbsWCUmJurIkSOSBub9Wr16tV544QX94x//0MiRI+3jnfmzl5KS0u73L/Bcf9PRvWpPRkaGJAV9twbSvfJ6vbr66qs1a9Ys5ebmavr06frZz34WVt+rARlGvF6vZs2apby8PPuY3+9XXl6eMjMzHWxZ+KmsrNTRo0eVmpqqWbNmKTIyMui+HTp0SEVFRQP+vo0ZM0YpKSlB96a8vFyvv/66fW8yMzNVWlqqwsJC+5yXX35Zfr/f/styIPvoo490/vx5paamShpY98uyLK1evVrPPfecXn75ZY0ZMybo+c782cvMzNTbb78dFOB27typuLg4TZ48uW8+SB+40r1qz/79+yUp6Ls1EO5VR/x+v+rq6sLre9VjQ2ENs23bNsvn81lbt2613nvvPevOO++0EhISgkYMD0Tf+c53rPz8fOvYsWPWP//5TysrK8tKTEy0zpw5Y1mWZd11113WVVddZb388svW3r17rczMTCszM9PhVveNiooK680337TefPNNS5L12GOPWW+++ab14YcfWpZlWQ8//LCVkJBg/fGPf7Teeust65ZbbrHGjBlj1dTU2O8xf/58a+bMmdbrr79u7d692xo/frx16623OvWRetXl7ldFRYX13e9+1yooKLCOHTtm/f3vf7c++clPWuPHj7dqa2vt9xgo92vlypVWfHy8lZ+fb50+fdp+VFdX2+dc6c9eY2OjNWXKFGvevHnW/v37rR07dljDhw+31qxZ48RH6jVXuldHjhyxfvSjH1l79+61jh07Zv3xj3+0xo4da91www32ewyUe2VZlnXfffdZu3btso4dO2a99dZb1n333We5XC7rb3/7m2VZ4fO9GrBhxLIs6+c//7l11VVXWV6v15ozZ4712muvOd0kxy1ZssRKTU21vF6vNWLECGvJkiXWkSNH7Odramqsb37zm9aQIUOsmJgY61/+5V+s06dPO9jivvOPf/zDknTJY9myZZZlNU/vXbt2rZWcnGz5fD5r7ty51qFDh4Le4/z589att95qDR482IqLi7OWL19uVVRUOPBpet/l7ld1dbU1b948a/jw4VZkZKQ1atQoa8WKFZf8z8BAuV/t3SdJ1n//93/b53Tmz97x48etBQsWWNHR0VZiYqL1ne98x2poaOjjT9O7rnSvioqKrBtuuMEaOnSo5fP5rKuvvtr63ve+Z5WVlQW9z0C4V5ZlWV//+tetUaNGWV6v1xo+fLg1d+5cO4hYVvh8r1yWZVk9V2cBAAAIzYAcMwIAAMIHYQQAADiKMAIAABxFGAEAAI4ijAAAAEcRRgAAgKMIIwAAwFGEEQAA4CjCCAAAcBRhBAAAOIowAgAAHEUYAQAAjvr/AaYAdW2cLIeOAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "N=np.arange(300)\n",
    "plt.plot(N, pncarri)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "aaf3813f-e6f5-443f-a305-76f124d4f31f",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "apriori=np.exp(-(N-90)**2/10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "a1fee042-f861-41fc-a365-3e6af49c31fb",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7fa0671a7e50>]"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(N, np.array(pncarri)*apriori)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "1f459d70-58a0-4f33-b098-bcd369e5199d",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "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.11.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
