Newsgroup: it.hobby.enigmi
Titolo: tanto non dormo più :(

mi sono svegliato e ancora stavo pensando al mio MUD, ci vorrŕ tempo per
realizzarlo come dico io ma spero di poterlo fare entro la fine del 2006; ad
ogni modo un calcolo mi assilla, devo dare una percentuale di successo
basata su uno o piů valori (A1, A2, A3, An, ...) dove i valori A sono il
valore utile per ottenere il 100% pieno di successo. I valori invece che
iniziano con B sono quelli in possesso del giocatore. Supponiamo di fare un
calcolo su A1 = 10 e A2 = 10 cosě se il giocatore ha B1 = 5 e B2 = 8 non
avrŕ la certezza del successo in una particolare azione, giusto? Ora come
considero io questa proporzione? Come ricavo la percentuale? Ho pensato a
due sistemi:
Sistema 1.
Faccio un riparto dei valori a (100 / (A1+A2)) e lo moltiplico per A1 e poi
per A2 per avere una sorta di incidenza percentuale del singolo parametro,
corretto? Per convenzione chiamo il rapporto tra A1 ed il coefficiente A1c e
l'altro A2c. Quindi Faccio questa operazione: (A1c / A1) * B1 e stessa cosa
con l'altro/i parametro/i poi sommo quello che mi viene. E' corretto?
Sistema 2.
Non me lo ricordo piů.
Il problema č che devo stare attento che un parametro non compensi gli
altri, se ad esempio B1 vale 15 e B2 5 avrň comunque il 100% col mio
sistema, mentre vorrei tenere conto della mancanza nel secondo parametro;
devo per forza fare un controllo?
if (B1 > A1){
  B1 = A1
}
Probabilmente mi sto perdendo in una stupidata, ma tanto non ho piů sonno e
non mi viene in mente altro che risolvere questa cosa, non sono un
matematico, e mi perdo in piccole cose >< se oltre a questo mi date una mano
forse leggendo mi torna il sonno :O e domattina (stamattina) forse mi viene
in mente una soluzione alternativa.
-- 
Ludico.Net
http://www.ludico.net/index.asp?src=5

 mi sono svegliato e ancora stavo pensando al mio MUD, ci vorrà tempo per


buona idea, la prossima volta che mi alzo alle
5 di mattina chiamo la mia ragazza e le chiedo
se posso andare a casa sua per fare sesso che
tanto non ho sonno, poi ti dico cosa mi risponde..

 considero io questa proporzione? Come ricavo la percentuale? 
Temo di non aver capito.
Ti spiacerebbe fare un esempio pratico.
Se poi mi dici in che ambiente e linguaggio stai elaborando questa cosa,
magari posso fornirti un supporto concreto.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 questa cosa, magari posso fornirti un supporto concreto.
per ora sto buttando giů una macro analisi, per progettare i vari
DB e tabelle per gestire tutti gli oggetti, i NPC, gli eventi e tutto e
mi sono imbattuto in questa cosa perchč voglio fare un sistema di
"compensi" per l'esperienza molto flessibile. Il personaggio ha una
percentuale di successo in determinate azioni, questa percentuale
puň dipendere da uno o piů attributi, se dipende da uno solo ok č
semplice me se devo prenderne in considerazione due? Come calcolo
la percentuale? Se sommo un valore potrebbe compensare l'altro.
Credo che il metodo piů semplice sia fare il riparto assucurandosi di
considerare solo il valore utile massimo, nell'esempio se A1 del giocatore
fosse 12 considerare solo 10 e cosě via..

 avrebbe?
Se non ho capito male, ritengo che in questo caso, dovresti fare la media 
tra 5/10 e 6/8 (= 5/8 = 62,5%), sempre che i due fattori al loro massimo 
livello siano importanti allo stesso modo.

 livello siano importanti allo stesso modo.
perchè la media? io ho fatto questo calcolo:
100 / (10 + 8) e assumo questo valore come C poi ho fatto questi due:
((C / 10) * 5) + ((C / 8) * 6) = 61,11111 ho sbagliato?

con l'altro/i parametro/i poi sommo quello che mi viene. E' corretto?
Non mi riescono chiare alcune cose.
1. A1=10; A2=10; ma A3,.. non e` detto che valgano tutti
dieci, altrimenti sarebbe inutile distinguerli.
Confermi?
2. Vuoi sapere se con le "carte" in mano B1 e B2 io posso
calcolare l'esatta percentuale di successo, o il banco
deve calcolarsela?
In altre parole, gli indici A1.. sono pubblici?
3. DEVONO verificarsi tutti gli eventi della carte B1..
che ho in mano per regola di gioco? o posso scegliere
di scartarne alcune?
* * *
Se esistessero solo A1, A2 e dunque B1, B2, e se gli
eventi non sono legati, allora potresti avere un qcs
come questo:
B1:  0+++++++++++++++++50---------------100  
B2:  0+++++++++++++++++++++++++++80-----100
Successo: 50/100  (max)
ma anche:
B1:  0+++++++++++++++++50---------------100  
B2:  0-----20++++++++++50+++++++++++++++100
Successo: 30/100  (min)
[e dunque anche una via di mezzo]
Voglio dire: su 100 volte potrebbe verificarsi B2
anche quando B1 non si e` verificato?
-- 
Ciao, rez	||  -- GNU/Linux 2.4.25 su Slackware 9.1  ||


No. Nessuno dei due ha sbagliato, nel senso che non e' noto il rapporto 
tra A1 e A2.
Nel primo caso Ravesi ha assunto che A1 al massimo valore (10) equivalga 
ad A2 al massimo valore (10)
Quindi (5/10 + 6/8) * 1/2
Nel secondo caso tu invece hai assunto che il rapporto tra A1 e A2 sia 
quel C e quindi
(5/10 + 6/8) * C
che pero' a me viene 69.444444 se utilizzo il C che hai indicato tu.
Chi tra me e te ha sbagliato i conti o perso una parentesi?
In ogni caso C e' un rapporto tra A1 e A2 da stabilire a priori.

 In ogni caso C e' un rapporto tra A1 e A2 da stabilire a priori.
questo non lo capisco, i due valori non sono collegati, non dovrebbe esserci
alcun rapporto credo, proviamo a dirlo in modo diverso:
se A1 = 10 e A2 = 8 ottendo il 100%; quanto ottengo se A1 vale... ecc
esiste un calcolo che si possa fare su meno righe di codice possibile?
Ovviamente escusa la parte di verifica in cui controllo che B1 non sia
superiore ad A1 e B2 ad A2.

 anche quando B1 non si e` verificato?
posso avere il massimo anche da uno solo dei parametri
come posso non arrivare al massimo in nessuno, non c'è
un limite minimo, se ho una percentuale bassa tipo 12%
va a fortuna.
In questi giochi poi esistono diverse strategie; è bene saper
bilanciare le caratteristiche senza esagerare in quelle meno
importanti ma che potrebbero tornare utili solo in poche
occasioni.


In questi giochi poi esistono diverse strategie; è bene saper
-cut-
Guarda, qui non mi dici praticamente nulla, ma ho visto
negli altri tuoi post.. be', SE l'andamento del valore(?)
(forza, potere?) delle A e` lineare, anzi: di diretta
proporzionalita`, ALLORA la percentuale va
necessariamente cosi`:
a1=10   & a2=8     ->  a1+a2=100%
a1= 5   & a2=4     ->  a1+a2= 50%
..........
a1= 0,1 & a2=0,08  ->  a1+a2=  1%
Inoltre SE a1=10 vale tanto quanto a2=8,
cioe` 50% a testa, ALLORA con b1=4 & b2=6
dovresti valutare: 4*50/10+6*50/8=57.50% esatto.
Mi dirai: "che scoperta! ci volevi proprio tu!", be'
ma dov'e` che allora hai dubbi? sulla ripartizione
della parte di percentuale tra a1 e a2? Puoi deciderla
tu a priori con un indice legato alla strategia, questo
e` un campo tuo penso.


 ma dov'e` che allora hai dubbi?
mi serve di fare il calcolo su una singola riga escluso
il controllo per a <= b perchč se supera il massimo
potrebbe compensare e addirittura ottenere una
percentuale superiore a 100.

 percentuale superiore a 100.
Allora se "b" potrebbe assumere valori superiori ad "a", dovrebbe bastare 
che nel controllo si sostituisca "a" a "b", se quest'ultimo fosse > di "a". 
In tal modo il contributo di questo parametro non potrŕ mai superare il suo 
massimo.
Gianni
--
Chi vota per il Cdx danneggia anche te! Digli di smettere!
 

percentuale superiore a 100.
Mi spiace ma son troppe le cose che non so del gioco,
non mi riesce di seguire, una sola riga ad esempio non
so se vuoi dire di programmazione o una sola equazione.
E poi avrei pensato/avevo capito: b <= a.
Tra l'altro percentuale di probabilita` superiore al 100%
non avrebbe significato, salvo attribuirglielo. 


esiste un calcolo che si possa fare su meno righe di codice possibile?
Se cerchi di produrre codice efficente devi basarti su cose sensate
come il tempo di esecuzione, l'occupazione in memoria o simili; il
numero di righe di codice non e' una metrica di qualche utilita'...
Saluti,
Natale Fietta

 numero di righe di codice non e' una metrica di qualche utilita'...
no intendo, per fare il calcolo della %le in una sola riga senza dover
fare 4/5 calcoli per averla ma ridurla al minimo

 che nel controllo si sostituisca "a" a "b", se quest'ultimo fosse > di
"a".
:) intendo il calcolo della %le e non il confronto appunto

 E poi avrei pensato/avevo capito: b <= a.
esatto, non ha senso se lo supera perchè si ottiene un
sopra 100 che non ha significato al momento

 :) intendo il calcolo della %le e non il confronto appunto
Non vedo la difficoltà. Tanto il confronto devi farlo comunque. Creati delle 
variabili di comodo [diciamo c1, c2, etc.] nelle quali muovere "b" se 
inferiore ad "a", altrimenti ci muovi "a". Poi nella equazione utilizzerai 
"c".
O addirittura in "c" potresti muovere direttamente la percentuale b*100/a, 
se "b" < "a" o 100 nell'altro caso.
A parte il fatto che prima di votare il Nano Pelato mi taglierei la mano,
tanto distante è la mia dalla sua visione dei rapporti nella società, non
posso che confermarti quanto hai constatato personalmente.
Sotto sfratto da oltre 10 anni, ho perso tanto di quel tempo in giro per
cercare di acquistare una casa e mi sono dovuto far sfuggire più di una
occasione di case che avrebbero fatto al caso mio, per l'eccessivo peso del
necessario mutuo che, come dicevi, portava la rata a livelli che non potevo
assolutamente permettermi.
Fortunatamente, nel 1999, quando la proprietà decise di vendere l'intero
stabile gli interessi sui mutui erano scesi notevolmente grazie all'entrata
nell'euro e, quindi, ho potuto acquistare la casa dove già abitavo.
Grazie Prodi e Ciampi.


 Grazie Prodi e Ciampi.
?

piattaforma.
Mah.. ho la sensazione d'avertelo gia` scritto, cmq non
mi costa nulla riscriverlo.
DATI
A1=a1
A2=a2
..
A_n=a_n
dove le a_i indicano NUMERI DATI.
B1=b1
B2=b2
..
B_n=b_n
idem, ma col vincolo: b1<=a1; b2<=a2;..; b_n <= a_n.
VALUTAZIONE TOTALE
Alla n-pla di valori (b1,b2,..,b_n) viene associata
la seguente probabilita` P=V/100, essendo V la valutazione
o efficacia dell'arma.
(1)   V=100/n (b1/a1 + b2/a2 + .. + b_n/a_n)
VALUTAZIONE PARZIALE
Conoscendo solo alcuni valori, per la loro valutazione
basta limitare la somma entro la parentesi alle B che
si conoscono.
Se ad esempio ho b2, b5, b7 scrivo:
(2)   v(2,5,7)=100/n (b2/a2+b5/a5+b7/a7)
Se ne ho una sola, diciamo la B3=b3, e se n=20, ho:
100/20 b3/a3=5*b3/a3, che mi sembra anche giudizievole,
perche' indica la percentuale posseduta della massima
possibile che sarebbe v3=100/20=5 ossia il 5% per p3.
* * *
Ebbene, le (1),(2) sono "una sola riga"?



ora la provo grazie [...]
allora col tuo sistema mi viene 62.5 mentre
col mio viene 61.11111 cambia poco, ci puň stare

 ?
Scusa, mi è scappato un copincolla sbagliato. ;-)
Ciao


fare 4/5 calcoli per averla ma ridurla al minimo
Continuo a non trovare un senso in una simile richiesta...
cosa ritieni di guadagnare limitando il calcolo ad una sola riga?
Saluti,
Natale Fietta
P.S.
ma che centra tutto cio' con gli enigmi?

 ma che centra tutto cio' con gli enigmi?
tra it.hobby.enigmi, it.hobby.umorismo e free.it.cinema
mi era sembrato il più appropriato, "tutto sommato"

 Nel secondo caso, in c1 avrai già la percentuale.
forse non mi sono spiegato, intendo se esiste un'equazione
che funzioni sia con 1 solo valore che N da considerare, se
puo scrivere qualcosa di simile o è matematicamente impossibile?

 puo scrivere qualcosa di simile o è matematicamente impossibile?
Quando si opera con una serie di valori da poter trattare tutti allo stesso 
modo, si utilizzano delle schiere che contengono valori omologhi.
Si potrebbero fare delle schiere A(1,2,3,..., n); B(1,2,3,..., n) da 
processare in un loop.
Il loop potrebbe essere comandatoda altre schiere che contengano gli indici 
da prendere in considerazione per ciascun evento.
Potrebbe funzionare così:
A(1) = forza; A(2)= intelligenza; A(3)= astuzia; A(4)=magia; etc.
Se nella situazione X vanno considerate solo forza ed astuzia, per questa 
situazione ci sarà un'altra schiera che conterrà X(1)=1; X(2)=3; X(3)=0.
Leggi gli elementi di X( ) finchè non arrivi allo zero. Con il valore letto 
vai a leggere l'elemento di A( ).
Nel nostro caso si troverebbe prima 1, si calcolerebbe il % relativo alla 
forza, e poi 3, si calcolerebbe il % relativo all'astuzia. Tutti i valori 
calcolati andrebbero sommati e ci andrebbe fatta la media.
Ovviamente il modo esatto di funzionamento dipende essenzialmente dal 
linguaggio di programmazione che si sceglie.


 linguaggio di programmazione che si sceglie.
grazie ancora ^^ forse chiedo troppo, ma esiste la possibilità di non
fare il ciclo? So che fare un ciclo di 4/5 operazioni è insignificante, ma
dal
punto di vista matematico esiste un'equazione simile?

calcolati andrebbero sommati e ci andrebbe fatta la media.
Mi rivolgo a te non perche' io sia interessato
direttamente, ma per curiosita` perche' ho seguito
il thread.. potresti dirmi perche' la media?
Faccio un esempio, specie ancora per Ludico.Net:
n=3
a1=10; b1=8;
a2=20; b2=0;
a3=70; b3=5;
la "forza giocabile", o probabilita` di
successo che sia, e`:
100*(8/10+5/70)/3 = 2,90 percento.
Se le B fossero tutte al max, avremmo:
100*(10/10+20/20+70/70)/3=100 percento,
se invece fossero tutte al 50% avremmo anche per
la forza la meta`: 100*3/2/3=50 percento, e cosi`
via in proporzionalita`.


 dal punto di vista matematico esiste un'equazione simile?
La difficoltà sta nel tradurre formule complesse [che non so nemmeno se 
esistano nel nostro caso] in istruzioni di programmazione.
Quando non si sa quante volte sarà necessario fare una certa operazione, la 
cosa migliore è quella di fare un bel loop condizionato.
L'alternativo, a quanto ne so, è quella di procedere, in presenza di un 
numero piccolo di fattori da considerare, di prevedere tutti passaggi, 
condizionandoli con un if. La cosa però non mi pare molto funzionale. 
Dovresti prevedere l'elaborazione condizionata di A1, A2, A3, ..., An, e 
dovresti memorizzarti da qualche parte l'informazione circa quali passaggi 
eseguire per le varie situazioni.


 100*(8/10+5/70)/3 = 2,90 percento.
Ti è scappata un virgola al posto sbagliato 29,0%
Cmq, anche tu fai la media. Farla prima o dopo aver trasformato i dati in % 
non cambia nulla
8/10 = 80,00%; 0/20 = 0,00%; 5/70 = 7,14%
(80,00 + 0 + 7,14)/3 = 29,05%


dal punto di vista matematico esiste un'equazione simile?
In matematica si usano sommatorie o produttorie per scrivere
sinteticamente equazioni di quel tipo, ma il loro corrispondente
informatico e' proprio un ciclo (implicito o esplicito), per cui non
cambia nulla.
Saluti,
Natale Fietta

 cosa migliore è quella di fare un bel loop condizionato.
se non c'è modo probabilmente è preferibile i ciclo
piuttosto di n blocchi if, ma nel caso credo che al massimo i valori
siano in tutto 4 e vengano considerati massimo 2/3 ma per la maggior
parte dei casi uno solo

 cambia nulla.
mi sembra se ne era già parlato per il discorso del lotto, dico
bene? quando chiesi un sistema per calcolare quanto combinazioni
di X numeri sono possibili con un numero Y (es. 90)

 Ti è scappata un virgola al posto sbagliato 29,0%
ho fatto una prova con excel ma non capisco il mio errore
ovvero, perchè è sbagliato il mio sistema? Trovate le prove
su: 
http://www.ludico.net/perc.xls
 in neretto il risultato col
mio sistema mentre in "rosso neretto" :) il risultato facendo
la media e presumibilmente corretto.
La cosa per me curiosa è che inizialmente i due risultato sono
differenti (la metà) mentre aumentando i valori diventano simili
anche i risultati. Inoltre se nel mio sistema metto i numeri per
calcolare la metà viene correttamente il 50% quindi il sistema
è comunque corretto? Ma se è corretto ed è corretto anche
l'altro perchè danno risultati differenti?
grazie a tutti per l'aiuto ^^

(80,00 + 0 + 7,14)/3 = 29,05%
Capit'.. be' io la vedo come "riportarla in termini di
percentuale", cioe` questa proporzione per ogni singolo
caso  B1:A1=forzaB1:(100/n)  ->  forzaB1=100/n B1/A1.


l'altro perchè danno risultati differenti?
Per il piu' semplice dei motivi, sono due formule completamente
diverse... entrambe sono "corrette", ma implementano due algoritmi
diversi quindi i risultati sono diversi per forza.
(noto anche che nella casella H17 hai sbagliato a scrivere, ci va
12/15, non 10/15, ma questo e' ininfluente, tanto il risultato resta
comunque diverso da quello della tua formula, come e' giusto che sia).
Fatte le dovute semplificazioni (i tuoi calcoli nell'excel sono
piuttosto offuscati) le due formule sono
tua =100*(E4+E5+E6)/(B4+B5+B6)
media =100*(E4/B4+E5/B5+E6/B6)/3
entrambe rispettano le tue richieste, scegli quella che ti piace di
piu'.
Saluti,
Natale Fietta
P.S.
forse questo thread sarebbe piu' adatto a it.scienza.matematica che ad
it.hobby.enigmi

 media =100*(E4/B4+E5/B5+E6/B6)/3
ecco! era questo quello che chiedevo!! quando dicevo di
mettere il calcolo su una sola riga e soprattutto questo:
Se entrambi i calcoli sono corretti, che differenza c'č tra il
mio sistema e fare la media? Anzi no, provo a rispondermi e
vedere se ho capito il meccanismo, con la media si da ad
ogni parametro un peso massimo pari alla sua parte, ovvero
se i parametri fossero 2 ognuno avrebbe un peso massimo
del 50%. Mentre col mio sistema ad ogni parametro viene
dato un peso massimo in relazione alla somma dei parametri
ovvero se ho 15 e 5, il primo ha peso 75% massimo ed il
secondo ha 25% massimo.
Due domande:
- Quanto affermo č corretto o sto delirando ancora?
- Se corretto, esiste un metoto piů corretto dell'altro sapendo
l'utilizzo che dovrň farne?

l'utilizzo che dovrň farne?
Il metodo tuo non mi sembra che tu possa accettarlo.
Per convincerti basta considerare che se poni al massimo
tot B devi necessariamente avere tot*100/n di percentuale
di probabilita` -- cosi` almeno mi sembrava richiedessi
come condizioni.
Le differenze tra i due metodi le vedi se sbilanci i
valori di una o due B rispetto alle corrispondenti A,
per dire: A1=110 <--> B1=3; A2=7 <--> B2=7; con n=2;
Forza totale delle B: 51,36, e il tuo? non credo che
raggiunga neppure il 50%, il che e` inaccettabile.


 raggiunga neppure il 50%, il che e` inaccettabile.
in teoria non dovrebbe raggiungere manco il 10% però
ragionandoci mi convinco del contrario, ma non sono
ancora sicuro al 100%.
Prova a porre il problema in termini pratici, ti faccio un
esempio, per risolvere un enigma tipo il cubo possiamo
stabilire che richieda 10 intelleto e 1 in forza (è un cubo
molto pesante :) ora col tuo sistema avendo 1 in forza e
0 in intelletto hai il 50% di probabilità di risolvere il gioco
è ragionevole?

è ragionevole?
Questo e` conseguenza diretta della condizione che tu hai
scelto: che le quote di probabilita` siano equamente
ripartite tra tutte le armi indistintamente.
Ti dissi anche che era campo tuo.
D'altra parte puoi sempre aggiungere un nuovo parametro
che controlli questo.
Eccolo, diciamolo r1,r2,..,rn.
Prima era costante: r1=r2=..=rn=100/n, ora te lo puoi
scegliere come ti pare, ma con la condizione che:
(1)  r1+r2+..+rn=100.
La formola diventa pertanto questa:
(2)  Forza_totale_delle_B = r1*b1/a1 + r2*b2/a2 +..+ rn*bn/an
nota bene che una o piu` b (anche tutte) puo` essere
nulla (valere zero, cioe` puoi non avere punti-arma).


 nulla (valere zero, cioe` puoi non avere punti-arma).
no questo è impossibile, all'inizio del gioco vengono dati
n punti da distribuire in aggiunta ad un valore minimo fisso
iniziale per ogni attributo pensavo da 3/4 iniziali e poi da
distribuirne altri 6/7 in 4/5 attributi differenti. la richiesta
di Ax (o era B non ricordo) sarà sempre superiore a 3.

č ragionevole?
No.
Ma non e' neppure ragionevole che avendo intelletto=10 e forza=0 si
ottenga il 90% di successo della tua formula (dovrebbe essere 0%
siccome non hai la forza di muovere il cubo). 
ma anche il 50% calcolato con la media sarebbe sbagliato in questo
caso, ne deduco che entrambe le formule siano inadatte alle tue
esigenze...
Se non vuoi aggiungere ulteriori parametri forse potresti provare con
una formula moltiplicativa come la seguente
p=100*B1/A1*B2/A2
cosi' ottieni probabilita' zero se anche uno solo uno dei parametri e'
zero, pero' perdi la linearita' dato che con entrambi i valori al 50%
ottieni solo il 25% di successo.
Se per te questo e' un difetto, si puo' ovviare introducendo nella
formula una radice quadrata in questo modo
p=100*sqrt(B1/A1*B2/A2)
(nota che se i termini sono tre serve la radice cubica, e cosi'
via...)
una di queste formule riesce finalmente a soddisfare tutte le tue
diverse esigenze ?
Saluti,
Natale Fietta

 diverse esigenze ?
macello! siamo andati oltre le mie limitate capacità :( a dire il vero in
termini pratici non capisco come il tuo calcolo risulti essere uguale al
mio fatto in quel pastrocchio di excel, però hey, funziona e a me non
interessa scoprire cose di cui potrei pentirmi :) Cerco in rete qualcosa
su questi giochi e sulle regole AD&D nella quarta edizione so che sono
stati introdotti i tiri percentuale, poi chiedo a qualche amico che ha
giocato a cose simili sia su carta che su telnet, magari saprà consigliarmi
su quale soluzione più attendibile.
Certo se avessi forza 0 è ovvio il fallimentoma se anziche 1 avesse
richiesto
4 ed io avessi solo 1 sarebbe già diverso. Posso considerare ad esempio un
"valore minimo" sotto il quale l'azione fallisce in modo certo, buona idea
grazie!
Esempio:
A 10  b 4  successo 100%
A  2   b 2 fallimento 100%
in questo caso come combino l'equazione per considerare la percentuale,
sempre
utilizzando il mio sistema? è possibile un calcolo su una sola riga?

 è possibile un calcolo su una sola riga?
se proprio ci tieni, in linguaggi come il C si puo', ma complica le
cose in modo inutile... scrivere un'orrore come il seguente ti pare
desiderabile?
p=100*(((b1>max1)?max1:(b1<min1)?Failure():b1)-min1+((b2>max2)?max2:(b2<min2)?Failure():b2)-min2)/(max1-min1+max2-min2);
Saluti,
Natale Fietta

 desiderabile?
mi riferivo sempre alla sola operazione di calcolo, escludendo
i controlli if(){} del caso, credo che quella sopra sia perfetta :)
Fo una prova e ti/vi faccio sapere.