Category Archives: Javascript

Moneta di Buffon 1

L’esperimento consiste nel lanciare una moneta su di un pavimento ricoperto di assi parallele (parquet…).

La probabilità che la moneta tocchi il bordo di un’asse dipende dall’altezza di ogni striscia e dal raggio della moneta.
La moneta non tocca il bordo se il suo centro cade a una distanza dai bordi maggiore del suo raggio, cioè se cade all’interno di una striscia interna

  1. Altezza della striscia sul pavimento, H
  2. Raggio della moneta, R, \ \ \ 0 \leq R \leq \frac{H}{2}
  3. Altezza della striscia interna,  h=H-2R

La probabilità che la moneta cada all’interno è data dal rapporto tra la superficie della striscia interna e tutta la superficie di una striscia, quindi dal rapporto tra le due altezze

P_I = \frac{h}{H}=\frac{H-2R}{H}=1-\frac{2R}{H}

La probabilità di toccare il bordo

 P=1-P_I=\frac{2R}{H}


Per semplificare

  1. Altezza della striscia, H=1
  2. Raggio della moneta, 0 \leq R \leq 1/2

La probabilità che la moneta tocchi il bordo della striscia è, al variare del raggio della moneta

R h PI P
1/8 6/8 6/8 2/8
0,25
2/8 4/8 4/8 4/8
0,50
3/8 2/8 2/8 6/8
0,75

Naturalmente

  • Se R \rightarrow 0 allora P \rightarrow 0
  • Se R \rightarrow 1/2 allora P \rightarrow 1

Metodo Monte Carlo

Il fenomeno viene simulato con le seguenti ipotesi

  • il centro della striscia ha y=0
  • l’ordinata del centro della moneta -1/2 \leq y\leq +1/2
  • la moneta tocca il bordo di una striscia se |y|\geq 1/2-R

Simuliamo N lanci, contando le occorrenze in cui la moneta tocca il bordo della striscia e confrontiamo le frequenze relative con le probabilità teoriche

R Numero lanci P
101 102 103 104 105
1/8 ? ? ? ? ? 0,25
2/8 ? ? ? ? ? 0,50
3/8 ? ? ? ? ? 0,75

2018 – Medicina… – 9

Osserva

  • S1 = 2
  • S2 = 3
  • Sn = 2*Sn-1+Sn-2

Qualificatore di triangoli

ITI – Esame di Stato – Seconda prova di Informatica – 1987

Il candidato deve ideare, orientandosi verso un linguaggio di programmazione a sua scelta, uno o più programmi che permettano di gestire la situazione descritta di seguito.

Si vuole un “qualificatore” di triangoli che qualifichi secondo la geometria elementare triangoli per conto, e con la collaborazione attiva, di un utente che non conosce la terminologia relativa a queste figure (ad esempio un bambino), ma è tuttavia in grado di confrontare segmenti e di riconoscere angoli retti, acuti e ottusi.

Il programma dovrà rivolgere domande che, nell’ambito di competenza dell’utente richiedano risposte di tipo SI/NO, VERO/FALSO o simili.
La forma e il numero di tali domande sono lasciati al candidato.

Quando riterrà di avere avuto informazioni sufficienti il programma produrrà la qualifica richiesta nella forma di un messaggio che dice “il tuo triangolo è” seguito da una delle qualifiche: “equilatero”, “isoscele rettangolo”, “isoscele ottusangolo”, “isoscele acutangolo”, “scaleno rettangolo”, “scaleno ottusangolo”, “scaleno acutangolo”.

La classificazione dei triangoli può essere schematizzata con l’albero qui a lato sotto:

Produrre:

  • analisi e documentazione del progetto ideato comprese le eventuali ipotesi aggiuntive poste dal candidato;
  • le dichiarazioni di tutti i tipi, le variabili e le costanti necessarie alla scrittura dei programmi che realizzeranno il progetto documentato;
  • la codifica degli algoritmi e/o dei segmenti di programma che si ritengono maggiormente utili ad illustrare le idee guida del progetto.

triangoli2


Lo schema di soluzione seguente differisce dalla consegna e si basa sulla richiesta delle dimensioni dei tre lati del triangolo


Considera per ogni domanda l’espressione logica corrispondente

  1. equilatero?
    • (a=b)\wedge(b=c)
    • (a = b) AND (a = c), BASIC
    • =E(a = b; a = c), CALC
    • (a == b) and (a == c), Python
  2. scaleno?
    • (a\ \neq \ b)\wedge (a\ \neq \ c)\wedge(b\ \neq \ c)
    • (a <> b) AND (a <> c) AND (b <> c), BASIC
    • =E(a <> b; a <> c; b <> c), CALC
    • (a != b) and (a != c) and (b != c), Python
  3. isoscele?
    • (a=b)\vee(a=c)\vee(b=c)
    • (a = b) OR (a = c) OR (b = c), BASIC
    • O(a = b; a = c; b = c), CALC
    • (a == b) or (a == c) or (b == c), Python
    • quali lati sono uguali?
  4. isoscele ma non equilatero?
    • (a=b)\wedge(a \ne c)\vee(a=c)\wedge(a \ne b)\vee(b=c)\wedge(a \ne b)
    • (a = b) AND (a <> c) OR (a = c) AND (a <> b) OR (b = c) AND (a <> b), BASIC
    • O(E(a = b; a <> c); (E(a = c; a <> b); E(b = c; a <> b)), CALC
    • (a == b) and (a != c) or (a == c) and (a != b) or (b == c) and (a != b), Python
    • quali lati sono uguali?
  5. rettangolo?
    • (a^2=b^2+c^2)\vee(b^2=a^2+c^2)\vee(c^2=a^2+b^2)
    • quali lati sono i cateti?
    • in quale vertice c’è l’angolo retto?
  6. ottusangolo?
    • (a^2\ > \ b^2+c^2)\vee(b^2\ > \ a^2+c^2)\vee(c^2\ > \ a^2+b^2)
    • quale angolo è ottuso?
  7. acutangolo?
    • (a^2\ < \ b^2+c^2)\wedge(b^2\ < \ a^2+c^2)\wedge(c^2\ < \ a^2+b^2)

Osserva

  1. Forse è opportuno controllare prima di tutto se si tratta di un vero triangolo: (a\ \lt \ b+c)\wedge (b\ \lt \ a+c)\wedge (c\ \lt \ a+b)
  2. Le espressioni logiche precedenti non sono indipendenti tra loro quindi non sarà necessario valutarle tutte.


Codifica: Calc, Javascript, Small Basic



Wikipedia: Triangolo, Triangolo rettangolo, teorema dei seni, teorema del coseno, …