Calcolare media per esercizio musicale
Ciao a tutti,
sto lavorando ad un sito musicale dove si eseguono esercizi che altro non sono che l'imparare la sequenza delle note per apprendere scale musicali e brani con semplici melodie. Gli utenti dopo che hanno provato, possono decidere di eseguire l'esercizio musicale che è dato da
A) Titolo
B) Numero note (ogni esercizio varia di numero di note che può andare, per esempio, da 10 a 50, nel senso, per esempio, che un esercizio ne ha 15 ed un altro ne ha 25)
prima domanda: come faccio a calcolare un voto (da 1 a 100) che sia la media tra errori fatti ed esercizio completato?
ad esempio se un utente esegue un esercizio che prevede la sequenza di 25 note e commette 4 errori come dovrebbe avvenire il calcolo?
seconda domanda: poiché lo stesso esercizio lo si può fare diverse volte e supponiamo che, prendendo sempre ad esempio un esercizio che prevede la sequenza di 25 note, l'utente lo esegua 4 volte in cui la prima volta commette 4 errori, la seconda 3, la terza 1 e la quarta zero, come faccio ad aggiornare il voto?
terza domanda: come faccio a calcolare il voto generale considerando se ha fatto più esercizi ed ognuno con un voto diverso? Nel senso brano_A eseguito 4 volte con voto 77 , brano_B eseguito 2 volte con voto 80 etc. etc.
Grazie mille anticipatamente a chi mi darà la soluzione, sicuramente per voi esperti in matematica questa cosa è semplicissima ma io non riesco a venirne fuori.
sto lavorando ad un sito musicale dove si eseguono esercizi che altro non sono che l'imparare la sequenza delle note per apprendere scale musicali e brani con semplici melodie. Gli utenti dopo che hanno provato, possono decidere di eseguire l'esercizio musicale che è dato da
A) Titolo
B) Numero note (ogni esercizio varia di numero di note che può andare, per esempio, da 10 a 50, nel senso, per esempio, che un esercizio ne ha 15 ed un altro ne ha 25)
prima domanda: come faccio a calcolare un voto (da 1 a 100) che sia la media tra errori fatti ed esercizio completato?
ad esempio se un utente esegue un esercizio che prevede la sequenza di 25 note e commette 4 errori come dovrebbe avvenire il calcolo?
seconda domanda: poiché lo stesso esercizio lo si può fare diverse volte e supponiamo che, prendendo sempre ad esempio un esercizio che prevede la sequenza di 25 note, l'utente lo esegua 4 volte in cui la prima volta commette 4 errori, la seconda 3, la terza 1 e la quarta zero, come faccio ad aggiornare il voto?
terza domanda: come faccio a calcolare il voto generale considerando se ha fatto più esercizi ed ognuno con un voto diverso? Nel senso brano_A eseguito 4 volte con voto 77 , brano_B eseguito 2 volte con voto 80 etc. etc.
Grazie mille anticipatamente a chi mi darà la soluzione, sicuramente per voi esperti in matematica questa cosa è semplicissima ma io non riesco a venirne fuori.
Risposte
Vedo che non ha risposto nessuno... ci provo io!
Sono molto curioso!
Ho in mente di usare i radicali.
Vediamo, segui il mio ragionamento. Supponiamo che tu voglia partire da un voto di base $q$ - per esempio $40$, tanto per non dare zero come voto! - una funzione lineare che assegna voti in percentuale rispetto alle note giuste o sbagliate è
$"voto"=f("note giuste")=q+(100-q)("note giuste")/("note totali")$
Da ora in poi indico "note giuste"=$x$ e "note totali"=$k$ tanto per rendere il tutto più matematico.
$f(x)=q+(100-q) x/k$
Essa è una funzione lineare, per provare la sua "bontà" mettiamo che le note totali siano 100 e che $q=40$ tanto per partire da $4$ come voto per il completo fallimento.
$f(x)=40+60x/(100)=40+3/5 x$.
Se si "azzeccano" zero note, il voto è $40$. Se se ne azzeccano $20$ su $100$, il voto sale a
$f(20)=40+3/5\cdot 20=40+12=52$.
Se si pigliano 50 note su 100 il voto sale a
$f(50)=40+3/5 \cdot 50=40+30=70$, che è la "metà" matematica (tolto il 40 iniziale)
Se si pigliano $100$ note su $100$ il voto è
$f(100)=40+3/5 \cdot 100= 40+60=100$.
Questa legge è lineare e come tutte le leggi lineari per i voti, varia molto in base al voto minimo ($q$) e non premia né penalizza. Suppongo, però, che vorresti premiare l'impegno o, al contrario, far sudare un voto alto.
Riprendiamo la nostra legge
$f(x)=q+(100-q) x/k$
in essa $0\le x\le k$ per ovvi motivi ($k$ sono le note totali, un parametro, mentre la variabile $x$ è il numero di note azzeccate dall'utente).
Dunque $0\le x/k \le 1$ sempre.
Una buona idea è quella di servirsi di una funzione sotto radice per far "alzare" la curva: in questo modo si premiano gli sforzi consentendo a tutti di giungere a un voto più alto (ricordo che $\sqrt(y)\ge y$ per $0\le y \le 1$). Se, però, si vuole essere più severi, basterebbe invece abbassare la curva prendendo una funzione quadratica (proprio perché $y^2\le y$ per $0\le y \le 1$).
Dunque, una funzione del tipo
$f(x)=q+(100-q) \sqrt(x/k)$
dovrebbe premiare gli utenti facendo ottenere voti più alti mentre
$f(x)=q+(100-q) (x/k)^2$
li dovrebbe penalizzare facendoli sudare di più.
Voglio metterle alla prova entrambe, ponendo di nuovo $k=100$ come note totali e $q=40$.
Prendiamo la prima
$f(x)=40+(100-40) \sqrt(x)/10=40+6\sqrt(x)$.
Se si azzeccano 20 note, si ha
$f(20)=40+12\sqrt(5)=66,8...$ che è maggiore del 52 ottenuto con la legge lineare.
Se se ne azzeccano 50 abbiamo
$f(50)=40+30\sqrt(2)=82,4...$ che è maggiore del $70$ che era la media.
Con 100 note prese si ha di più.
In pratica si cresce molto all'inizio con il voto salvo rallentare man mano che si raggiunge la fine e toccare il valore finale che è preimpostato e ottenuto proprio normalizzando - in un certo senso - l'argomento della radice.
Prendiamo la seconda
$f(x)=40+(100-40) x^2/(100)^2= 40+(3x^2)/500$
Se le note azzeccate sono 20, abbiamo
$f(20)=40+1200/500=40+12/5=42,4$ punteggio piuttosto infimo e che si discosta di poco dal minimo.
Se le note azzeccate sono 50, abbiamo
$f(50)=40+7500/500=40+15=55$, anche qui ben sotto al $70$ della media lineare.
Per $100$ abbiamo il massimo come prima.
In tutte queste leggi, in pratica, ho usato il fattore $k$ per "normalizzare" la parte che varia rendendola sempre compresa tra $0$ e $1$ e applicare la "percentuale" partendo da un voto di partenza $q$ (che può anche essere nullo).
Dimenticavo, ma magari è evidente, che nel caso di radici e frazioni varie basterebbe aggiungere un bel "parte intera di..." per troncare il voto.
Questa non l'ho capita, nel senso che io alla fine sovrascriverei e basta. Facendo una media dei voti basterebbe un errore per arrivare al massimo.
Una media...?
Di medie ce ne sono tante che danno risultati diversi e più o meno favorevoli anche se ora non me le ricordo. Opterei, però, per una media ponderata come all'università, nel senso di dare più peso a un pezzo difficile rispetto a uno facile, ma questi sono gusti personali.
La mia risposta è stata un parere "teorico". Se la tua domanda, invece, era di pura programmazione... beh, non sono la persona giusta!

"gerrix":
sto lavorando ad un sito musicale dove si eseguono esercizi che altro non sono che l'imparare la sequenza delle note per apprendere scale musicali e brani con semplici melodie.
Sono molto curioso!
prima domanda: come faccio a calcolare un voto (da 1 a 100) che sia la media tra errori fatti ed esercizio completato?
Ho in mente di usare i radicali.
Vediamo, segui il mio ragionamento. Supponiamo che tu voglia partire da un voto di base $q$ - per esempio $40$, tanto per non dare zero come voto! - una funzione lineare che assegna voti in percentuale rispetto alle note giuste o sbagliate è
$"voto"=f("note giuste")=q+(100-q)("note giuste")/("note totali")$
Da ora in poi indico "note giuste"=$x$ e "note totali"=$k$ tanto per rendere il tutto più matematico.

$f(x)=q+(100-q) x/k$
Essa è una funzione lineare, per provare la sua "bontà" mettiamo che le note totali siano 100 e che $q=40$ tanto per partire da $4$ come voto per il completo fallimento.

$f(x)=40+60x/(100)=40+3/5 x$.
Se si "azzeccano" zero note, il voto è $40$. Se se ne azzeccano $20$ su $100$, il voto sale a
$f(20)=40+3/5\cdot 20=40+12=52$.
Se si pigliano 50 note su 100 il voto sale a
$f(50)=40+3/5 \cdot 50=40+30=70$, che è la "metà" matematica (tolto il 40 iniziale)
Se si pigliano $100$ note su $100$ il voto è
$f(100)=40+3/5 \cdot 100= 40+60=100$.
Questa legge è lineare e come tutte le leggi lineari per i voti, varia molto in base al voto minimo ($q$) e non premia né penalizza. Suppongo, però, che vorresti premiare l'impegno o, al contrario, far sudare un voto alto.
Riprendiamo la nostra legge
$f(x)=q+(100-q) x/k$
in essa $0\le x\le k$ per ovvi motivi ($k$ sono le note totali, un parametro, mentre la variabile $x$ è il numero di note azzeccate dall'utente).
Dunque $0\le x/k \le 1$ sempre.
Una buona idea è quella di servirsi di una funzione sotto radice per far "alzare" la curva: in questo modo si premiano gli sforzi consentendo a tutti di giungere a un voto più alto (ricordo che $\sqrt(y)\ge y$ per $0\le y \le 1$). Se, però, si vuole essere più severi, basterebbe invece abbassare la curva prendendo una funzione quadratica (proprio perché $y^2\le y$ per $0\le y \le 1$).
Dunque, una funzione del tipo
$f(x)=q+(100-q) \sqrt(x/k)$
dovrebbe premiare gli utenti facendo ottenere voti più alti mentre
$f(x)=q+(100-q) (x/k)^2$
li dovrebbe penalizzare facendoli sudare di più.
Voglio metterle alla prova entrambe, ponendo di nuovo $k=100$ come note totali e $q=40$.
Prendiamo la prima
$f(x)=40+(100-40) \sqrt(x)/10=40+6\sqrt(x)$.
Se si azzeccano 20 note, si ha
$f(20)=40+12\sqrt(5)=66,8...$ che è maggiore del 52 ottenuto con la legge lineare.
Se se ne azzeccano 50 abbiamo
$f(50)=40+30\sqrt(2)=82,4...$ che è maggiore del $70$ che era la media.
Con 100 note prese si ha di più.
In pratica si cresce molto all'inizio con il voto salvo rallentare man mano che si raggiunge la fine e toccare il valore finale che è preimpostato e ottenuto proprio normalizzando - in un certo senso - l'argomento della radice.
Prendiamo la seconda
$f(x)=40+(100-40) x^2/(100)^2= 40+(3x^2)/500$
Se le note azzeccate sono 20, abbiamo
$f(20)=40+1200/500=40+12/5=42,4$ punteggio piuttosto infimo e che si discosta di poco dal minimo.
Se le note azzeccate sono 50, abbiamo
$f(50)=40+7500/500=40+15=55$, anche qui ben sotto al $70$ della media lineare.
Per $100$ abbiamo il massimo come prima.
In tutte queste leggi, in pratica, ho usato il fattore $k$ per "normalizzare" la parte che varia rendendola sempre compresa tra $0$ e $1$ e applicare la "percentuale" partendo da un voto di partenza $q$ (che può anche essere nullo).
Dimenticavo, ma magari è evidente, che nel caso di radici e frazioni varie basterebbe aggiungere un bel "parte intera di..." per troncare il voto.

seconda domanda: poiché lo stesso esercizio lo si può fare diverse volte e supponiamo che, prendendo sempre ad esempio un esercizio che prevede la sequenza di 25 note, l'utente lo esegua 4 volte in cui la prima volta commette 4 errori, la seconda 3, la terza 1 e la quarta zero, come faccio ad aggiornare il voto?
Questa non l'ho capita, nel senso che io alla fine sovrascriverei e basta. Facendo una media dei voti basterebbe un errore per arrivare al massimo.
terza domanda: come faccio a calcolare il voto generale considerando se ha fatto più esercizi ed ognuno con un voto diverso? Nel senso brano_A eseguito 4 volte con voto 77 , brano_B eseguito 2 volte con voto 80 etc. etc.
Una media...?
Di medie ce ne sono tante che danno risultati diversi e più o meno favorevoli anche se ora non me le ricordo. Opterei, però, per una media ponderata come all'università, nel senso di dare più peso a un pezzo difficile rispetto a uno facile, ma questi sono gusti personali.
La mia risposta è stata un parere "teorico". Se la tua domanda, invece, era di pura programmazione... beh, non sono la persona giusta!
