Skip to content

Instantly share code, notes, and snippets.

@mesosbrodleto
Last active August 14, 2018 16:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mesosbrodleto/6fba0fa5488d6677ec4773c0b3b60b42 to your computer and use it in GitHub Desktop.
Save mesosbrodleto/6fba0fa5488d6677ec4773c0b3b60b42 to your computer and use it in GitHub Desktop.
qualificazione - esempio
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## esempio di calcolo: dato un punto sul campo, calcolarne la distanza euclidea dalla porta\n",
"\n",
"Soluzione: \n",
"\n",
"La distanza euclidea tra due punti è definita come:\n",
"\n",
"$$distance = \\sqrt{\\Delta y^2 + \\Delta x^2}$$\n",
"\n",
"Dove $ \\Delta y $ è la differenza tra le ordinate dei due punti, mentre $ \\Delta x $ è la differenza tra le ascisse.\n",
"\n",
"Il punto in input viene inserito usando la funzione \n",
"```python\n",
"input()\n",
"```\n",
"\n",
"Il calcolo della distanza euclidea avviene tramite la funzione \n",
"```python\n",
"def euclidean(p1, p2) : \n",
"```\n",
"\n",
"Tale funzione prende in input due punti e ne restituisce la distanza euclidea. Al suo interno, utilizza ```math.pow()``` e ```math.sqrt()``` per calcolare potenza di 2 e la radice quadrata.\n",
"\n",
"\n",
"Ora, immaginiamo di avere il campo di calcio definito in coordinate $x \\in [0, ..., 100]$ e $y \\in [0, ... ,100]$.\n",
"\n",
"Dato un punto sul campo, vogliamo sapere la distanza dalla porta avversaria. Per convenzione, la porta avversaria è localizzata con le coordinate $p = (100,50) $, mentre la propria porta è localizzata al punto $p = (0,50)$\n"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"inserire un punto sul piano (formato: x,y)\n",
"90,30\n",
"distanza dalla porta avversaria del punto (90, 30) : 22.360679775\n"
]
}
],
"source": [
"import math\n",
"def euclidean(p1,p2):\n",
" \n",
" deltay = p1[1] - p2[1]\n",
" deltax = p1[0] - p2[0]\n",
" \n",
" square_sum= math.pow(deltax,2) + math.pow(deltay , 2)\n",
" \n",
" return math.sqrt(square_sum)\n",
"\n",
"print \"inserire un punto sul piano (formato: x,y)\"\n",
"point = input()\n",
"\n",
"if 0 <= point[0] <= 100 and 0 <= point[1] <= 100:\n",
" distance = euclidean(point, (100,50))\n",
"\n",
"\n",
" print \"distanza dall'origine degli assi del punto %s : %s\"%(point,distance)\n",
"else:\n",
" print \"punto non valido\""
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.12"
}
},
"nbformat": 4,
"nbformat_minor": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment