Questo articolo può apparire fuori contesto rispetto agli argomenti trattati nel mio blog, tuttavia credo che sia solo una mia percezione dovuta al fatto che il perno su cui si focalizza mi ha visto in passato direttamente interessato.
Da un punto di vista prettamente esterno questo articolo evidenzia argomenti tecnici basati su Javascript e sull'analisi statistica, ma non li approfondirò volutamente (mi limiterò, per chi fosse interessato, a riportare il codice che ho realizzato per l'ottenimento del risultato) perchè il motivo principale per cui l'ho scritto è dimostrare (anche se a mio avviso non ce ne sarebbe stato il bisogno ma l'indifferenza verso le mie contestazioni fu all'epoca disarmante) come quel senso di angoscia, che al giorno d'oggi definirei senza mezzi termini MOBBING, veniva provocato da alcuni professori durante le famose "interrogazioni a sorpresa" dove il mal capitato di turno veniva scelto con una pratica imparziale, ovvero secondo un calcolo, a detta loro "casuale", derivante dalla somma delle cifre di un numero di pagina preso "a caso" aprendo un libro.
Non potrò mai dimenticare il silenzio che scendeva al momento dell'apertura del libro e la sensazione di sconforto che mi attanagliava. E a farlo capire non bastò neanche quella volta, in seconda media, che mi presentai alla cattedra prima ancora che il numero di pagina fosse stato letto dalla professoressa e che inevitabilmente indovinate un po' a che numero corrispondeva la somma delle cifre della pagina aperta? Al mio... 10... Pisani! E si stupì pure che ero già lì...
Ho realizzato allo scopo un piccolo script in Javascript puro dove dò la possibilità di scegliere il numero di studenti di una classe (da 5 a 30) ed il numero di pagine di un ipotetico libro (a scopo dimostrativo da 200 a 350 pagine).
Il grafico di esempio riportato in Fig. 1 mostra il risultato ottenuto selezionando una classe di 30 studenti ed utilizzando un libro di 350 pagine.
Fig. 1 - Il mobbing delle interrogazioni a sorpresa con i numeri di pagina di un libro
Parlerò al passato quando mi riferirò a fatti avvenuti (ma di sicuro la storia si sarà protratta negli anni fino ai giorni nostri) e al presente per l'analisi del grafico, comunque sia indubbiamente, gli studenti con i numeri più bassi e quelli con i numeri intorno al 20 potevano guardare tranquilli gli uccellini fuori dalla finestra, e il senso di rilassatezza che ricordo coprire i loro volti la diceva lunga, senza contare che dal numero 21 in poi le probabilità di essere chiamato diventavano pressochè nulle.
All'aumentare del numero di pagine aumenta di poco la probailità per quei numeri praticamente intoccabili, ma questo aggettivo non viene minimamente intaccato se paragonato all'aumento dei casi che i numeri già martoriati subiscono.
Basti pensare che il numero 1 può uscire solo con la pagina 1 e 100 (la successiva sarebbe la pagina 1000 qualora presente) ed essendo un libro solitamente aperto in zone centrali ne esclude inevitabilmente gli estremi, quindi alla fine c'era un solo caso e durante i miei anni scolastici mi sento in tutta onestà di affermare che non è mai capitato e mai mi aspettavo che capitasse. E pensare che la soglia tra me ed il primo dell'elenco era veramente sottile ma la somma non è mai andata oltre il 10... Pisani!... E non ho mai capito perchè nemmeno in un caso si è proseguito con 1 + 0 = 1... Accardo...
Prendiamo ora in esame ad esempio il numero 19; per uscire nel range di pagine preso in considerazione è necessario che sia pescata una pagina tra la 19, 199, 289 e 298, perchè se disgraziatamente dovesse uscire la pagina 190, senza nemmeno porre il dubbio e senza ascoltare alcuna ragione il risultato sarebbe stato 1 + 9 + 0 = 10... Pisani!
Per i numeri oltre il 20 poi, nemmeno a parlarne. Ad esempio il 28, per il range di pagine preso in considerazione nell'esempio può uscire solo se viene pescata la pagina 28. Il numero di pagina successivo per portare a 2 i casi di uscita dello studente numero 28 dovrebbe essere il 1999 (1 + 9 + 9 + 9 = 28)... sia mai che il numero 28 dovesse essere uno che marina la scuola con frequenza perchè passare alla somma successiva è un attimo, proviamo un po' 2 + 8 = 10... Pisani!
Di seguito il codice utilizzato per il calcolo in oggetto.
Codice HTML:
<div id="contenitore">
Numero studenti: <select id="numero_studenti"></select>
<br />
Numero pagine del libro: <select id="numero_pagine_libro"></select>
<br />
<input type="button" value="Calcola" id="btnCalcola" />
<div id="risultato"></div>
</div>
Codice Javascript:
<script type="text/javascript">
var select_numero_studenti = document.getElementById("numero_studenti");
var option_numero_studenti = '';
for (i = 1; i <=30; i++) {
option_selected = '';
if (i == 20) { option_selected = 'selected="selected"'; }
option_numero_studenti = option_numero_studenti + '<option value="' + i + '" ' + option_selected + '>' + i + '</option>';
}
var select_numero_pagine_libro = document.getElementById("numero_pagine_libro");
var option_numero_pagine_libro = '';
for (i = 200; i <=350; i++) {
option_selected = '';
if (i == 300) { option_selected = 'selected="selected"'; }
option_numero_pagine_libro = option_numero_pagine_libro + '<option value="' + i + '" ' + option_selected + '>' + i + '</option>';
}
select_numero_studenti.innerHTML = option_numero_studenti;
select_numero_pagine_libro.innerHTML = option_numero_pagine_libro;
document.getElementById("btnCalcola").onclick = function() {
var select_n_studenti = document.getElementById("numero_studenti");
var select_n_pagine_libro = document.getElementById("numero_pagine_libro");
var n_studenti = select_n_studenti.options[select_n_studenti.selectedIndex].value;
var n_pagine_libro = select_n_pagine_libro.options[select_n_pagine_libro.selectedIndex].value;
var sommatore;
numero_possibilita = new Array();
for (k = 1; k <=n_studenti; k++) {
numero_possibilita[k] = 0;
}
for (j = 1; j <= n_pagine_libro; j++) {
sommatore = 0;
pagina_corrente = j;
while (pagina_corrente > n_studenti) {
numero_cifre_pagina = pagina_corrente.toString().length;
for (z = 0; z < numero_cifre_pagina; z++) {
sommatore = sommatore + parseInt(parseInt(pagina_corrente.toString().substring(z, z + 1)));
}
pagina_corrente = sommatore;
}
numero_possibilita[pagina_corrente] = numero_possibilita[pagina_corrente] + 1;
}
var risultato = "";
for (m = 1; m <= n_studenti; m++) {
risultato = risultato +"Lo studente numero " + m + " ha " + numero_possibilita[m] + " possibilita' di essere interrogato<br />";
}
document.getElementById("risultato").innerHTML = risultato;
}
</script>
Aggiungo una variante a livello tecnico per gestire il ciclo con gli array piuttosto che trattare i numeri di pagina prettamente come una stringa da convertire:
...
for (j = 1; j <= n_pagine_libro; j++) {
sommatore = 0;
pagina_corrente = j;
while (pagina_corrente > n_studenti) {
array_cifre_pagina = [];
array_cifre_pagina = pagina_corrente.toString().split('');
array_length = array_cifre_pagina.length;
for (z = 0; z < array_length; z++) {
sommatore = sommatore + parseInt(array_cifre_pagina[z]);
}
pagina_corrente = sommatore;
}
numero_possibilita[pagina_corrente] = numero_possibilita[pagina_corrente] + 1;
}
...
E l'esempio live che ho realizzato e che si trova presente su JSFiddle ma allo stesso tempo utilizzabile con più semplicità direttamente selezionando il tab "Result" nella schermata seguente:
E voi... vi sentivate penalizzati o protetti da questo sistema? Come si sarà ovviamente capito non sono mai stato entusiasta di questa pratica dato che il mio numero sul registro se non era il 10 era l'11 e quindi la probabilità massima di essere interrogato... ma sinceramente potrebbe aver avuto dei risvolti positivi sul mio carattere poichè mi ha insegnato che ogni volta... è sempre la volta buona.
Nessuno ha ancora commentato questo articolo, fallo tu per primo!
Scrivi un Commento