|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: May 2003
Messaggi: 3946
|
programma C (no ++)
ciao raga!!
riekkomi con 1 dei miei prob col C. dovrei fare 1 prog in cui bisogna inserire da tastiera quanti dadi (da 6 numeri)si vogliono tirare e il risultato ke si vuole ottenere. il prog restituisce la percentuale di uscita del numero inserito ho calcolato ke con x dadi c possono essere 6^x combinazioni. ora devo trovare la formula ke mi dice la possibilità ke il num inserito ad esempio con 1 dado 1--2--3--4--5--6 x ogni numero cè il 16.666% d uscita. con 2 dadi ho 36 combinazioni le ho stese su foglio ma nn riesco a trovare la formula!! poi alla fine dovrei fare percent= percent riuscita / comb.totali (6^x) m aiutate?! grassie! |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: May 2003
Città: Rimini
Messaggi: 2279
|
Non ho capito bene cosa vuoi sapere...
Vuoi sapere la probabilità che tirando n dadi esca sempre lo stesso numero? Se è così basta fare 1/(6^n) dove n è il numero di dadi. Infatti la prob che esca un numero è 1/6, se consideri n dadi devi moltiplicare le probabilità perché gli eventi sono correlati. Quindi 1/6*1/6*...*1/6 = 1/(6^n) Se vuoi implementarlo in C non è difficile, basta crearsi la funzione di elevamento a potenza (che se non ricordo male nell'ANSI non c'è)...
__________________
Gigabyte 965P-DS3 ¤ E6600@400*8 ¤ Scythe Ninja Plus Rev.B ¤ Ram 4GB ¤ HD SSD Crucial M4 128GB
Gainward 4850 Golden Sample ¤ Antec NEO 550HE ¤ CM Centurion 534 ¤ Dell Ultrasharp U2312HM Notebook Asus N551JW ¤ i7-4750HQ ¤ nVidia 960M 4GB ¤ 16GB DDR3 ¤ SSD Intel 850EVO 500GB |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: May 2003
Messaggi: 3946
|
no..praticamente inserisco il numero ad esempio
1 inserisco il num dadi 1 quindi con 1 dado da 6 quante possibilità ho ke esca 1 ? le possibilità su 6^1 ke esca 1 sono 1 / 6 = 0.1666 = 16.666% il numero sopra la frazione (numer o denomin? boh... sono i casi possibili ke combinando i dadi esca il numero inserito. con 2 dadi le combinazioni sono 36: 1-1__1-2__1-3__1-4__1-5__1-6__2-1__2-2__2-4__2-3__2-5__2-6__3-1__3-2__3-3__3-4__3-5__3-6__ __4-1__4-2__4-3__4-4__4-5__4-6__5-1__5-2__5-3__5-4__5-5__5-6__6-1__6-2__6-3__6-4__6-5__6-6 ora...quante possibilità ho ke esca ad es....il num 3? 1-2 & 2-1 cioè 2 casi ora devo fare 2 / 6^2 cioè 1/18 = 0.0555555 cioè 5.555% capito ora? Ultima modifica di lucas86mj23 : 04-02-2004 alle 21:23. |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
|
Quote:
Questo lo devi moltiplicare per 100 dopo per trovare la percentuale Ciao
__________________
GPU Compiler Engineer |
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: May 2003
Messaggi: 3946
|
ok ma devo fare 1 funzione (opss...non l'avevo scritto)
kon la formula ke vale x ogni numero e ogni quantità di dadi Ultima modifica di lucas86mj23 : 04-02-2004 alle 22:04. |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: May 2003
Messaggi: 3946
|
uppete!!
aiuto! |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Sep 2002
Città: vinci-spicchio
Messaggi: 530
|
la formula non è semplice ma neanche difficile ora ci studio e te la mando
__________________
Intel Pentium DualCore E2140 1,60 GHz , Asus P5LD2 R2.0,Sapphire x600xt 128Mb,hauppauge winTV,2x256Mb Ddr2 Vitesta 533Mhz,western digital caviar 160gb, seagate 20gb 5400giri, maxtor 40gb 7200giri, dvd+-rw gigabyte(BTC) 4x,Samsung writemaster dvd duallayer 18x , edimax wireless<-->router D-link G604T. Ultima modifica di alderighi : 07-02-2004 alle 16:45. |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
La formula dovrebbe essere: tutte le possibili combinazioni per ottenere la somma richiesta con n dad...moltiplicato per (1/6)^n...
Il problema magari è trovare tutte le possibile combinazioni di n dadi per ottenere la somma richiesta...per ora non mi viene in mente niente... Qui ci vorrebbe a2000... Ultima modifica di cionci : 07-02-2004 alle 17:20. |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Sep 2002
Città: vinci-spicchio
Messaggi: 530
|
ci vorrebbe il mio prof di calcolo...
comunque sembrerebbe funzionare combinazioni di (numerodadi-1 su numerochedeveuscire-1). Però non devi fare dei controlli perchè non funziona quando il numero che deve uscire è 1 e inoltre è un casino perchè non tiene di conto del numero massimo dei dadi. La cosa deve essere semplice ma mi sfugge. Prova a vedere su un lib di calcolo.
__________________
Intel Pentium DualCore E2140 1,60 GHz , Asus P5LD2 R2.0,Sapphire x600xt 128Mb,hauppauge winTV,2x256Mb Ddr2 Vitesta 533Mhz,western digital caviar 160gb, seagate 20gb 5400giri, maxtor 40gb 7200giri, dvd+-rw gigabyte(BTC) 4x,Samsung writemaster dvd duallayer 18x , edimax wireless<-->router D-link G604T. |
|
|
|
|
|
#10 |
|
Member
Iscritto dal: Jun 2001
Messaggi: 19
|
Ciao, vedi un po' se è questo qullo che cercavi e se il breve prog che ho scritto fa effettivamente quello che hai chiesto tu.
#include <stdio.h> #define FACCE 6 int power(int a); int main (void) { int nfreq,ndadi,ctrlm,ctrlM; double perc; for ( ; ; ) { printf("Quanti dadi da %d vuoi utilizzare: ? (ctrl+c per uscire)",FACCE); scanf("%d",&ndadi); printf("\n\nDi che numero, dato dalla somma di %d dadi a %d facce vuoi conoscere la probabilita' che si ottenga con un lancio: ?",ndadi,FACCE); scanf("%d",&nfreq); ctrlm=1*ndadi; ctrlM=FACCE*ndadi; if (nfreq<ctrlm || nfreq>ctrlM) { printf("\n\nIl numero inserito non e'una somma ottenibile con il numero di dadi inserito. \n\n\n"); } else { perc=ndadi/(double)power(ndadi);; printf("\nLa percentuale e' %.3f %%\n\n",perc*100); } } return 0; } int power(int a) { int power,cnt=1; if (a==1) { power=FACCE; return power; } else { for (cnt; cnt < a; cnt++) power=FACCE*FACCE; return power; } } Fammi sapere se è corretto e se ti è stato utile. Non ha mantenuto l'indentazione dopo il copia e incolla, sigh. Ultima modifica di Joestar : 08-02-2004 alle 00:42. |
|
|
|
|
|
#11 |
|
Member
Iscritto dal: Jun 2001
Messaggi: 19
|
Ops non è corretto manca qualcosa, lo sto correggendo.
|
|
|
|
|
|
#12 |
|
Member
Iscritto dal: Jun 2001
Messaggi: 19
|
Azz devo staarci dietro un po' , ora ho gente in casa, ma + tardi ci lavoro su.
|
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: May 2003
Messaggi: 3946
|
grazie 1000 x l' aiuto ke mi stai dando!!!
|
|
|
|
|
|
#14 |
|
Member
Iscritto dal: Jun 2001
Messaggi: 19
|
Ciao a tutti.
In parte ho risolto qualcosa, ma manca ancora un algoritmo che soddisfi qualsiasi caso. Partiamo da un po' + indietro. In generale per sapere quante combinazioni totali sono possibili con N dadi, la formula è: (nfacciedado)^ndado/i. Es. 4 dadi da 6 facce avranno 1296 combinazioni possibili. Per conoscere il "range" delle "somme possibili" tra n dadi: numerodado/i *nfacce - (numerodado/i -1) Es. 4 dadi da 6 facce avranno 21 somme possibili. (che vanno da 4 a 24, dove 4 e 24 sono rispettivamente il + piccolo e il + grande numero ottenibile con 4 dadi). La formula che funziona per tutti i casi l'ho trovata, mi manca solo la maniera precisa di determinare un coefficente e cioè il numero di volte che si ripete + spesso un certo numero. (fra poco farò uno schemino e tuttò sarà + chiaro). Prima la formula poi vi spiego il problema. Questa formula calcola la percentuale con cui il numero + piccolo e il numero + grande ottenibile con n dadi di n facce si presenti. percentuale = (ndadi / (nfacce ^ ndadi) ) / ndadi ) * 100 Ora, data questa formula ho notato che la frequenza con cui si ripetono le varie somme possibili ha un legame, che fino ad un certo punto è matematico, ma da un certo punto in poi, non lo capisco + (spero che qualcuno riesca a completare la cosa). (Abbrevio dado con d, il numero che precede la d è la quantità di dadi, quello che la segue è il numero di facce) Guardate questa tabella che considera i lanci di 1d4, 2d4 e 3d4. Som 1 2 3 4 5 6 7 8 9 10 11 12 1d4 1 1 1 1 2d4 1 2 3 4 3 2 1 3d3 1 3 6 10 12 12 10 6 3 1 Spero sia abbastanza chiara, ora cmq provo a spiegare come funziona. La riga somme indica le somme o i risultati che dir si voglia ottenuti dal lancio di n dadi a n facce. I numeri sotto si riferiscono a quante volte si ripete la somma possibile che fa ottenere il numero che si cerca. La somma totale di ogni riga corrisponde al numero di combinazioni totali, infatti per 1d4 sono 4, per 2d4 sono 4^2 (e 1 + 2 +3 +4 +3 +2 +1 fa appunto 16) per 3d3 sono 4^3=64 etc, etc. Ora il mio problema è che ho trovato una relazioni in quella tabella rettangolo che mi permette di determinare alcuni numeri, ma non tutti ! I + attenti avranno gia notato che esistono delle relazioni di somma tra le righe. Es. il 4 sotto il 5 è la somma di 3 + l'1 che gli sta sopra. Il 10 è la somma del 6 che lo precede e del 4 che gli sta sopra. In generale per una serie di numeri posso determinare con precisione in questa maniera quante volte si ripeterà tal numero. Ma c'è un problema. Nel caso della riga di 3d3 per esempio, riesco a determinare senza problemi e con rigore matematico 1 3 6 10 (e quindi di conseguenza anche l'altra parte speculare 10 6 3 1) Ma i 2 "12" come li ottengo da quella tabella ? Ebbene, non ci sono ancora riuscito, non ho trovato una relazione. (In realtà per i 2 "12" si, ma credo sia un caso. Sapendo che per 3d3 le comb totali sono 64 e sottraendo a 64 (1+3+6+10)*2 ottendo 24 che diviso 2 da 12. Ma per 4d4 i numeri che non riesco a determinare con quella tabella crescono di 1 rispetto a 3d3 e così via per tutti i successivi. Come li ho determinati allora ? e Come so che 12 è corretto ? Ho modificato un programma che simula il lancio di n dadi e calcola la frequenza con cui le possibili somme si ripetono. (Lo copio ed incollo nel prox messaggio). Sono sicuro che ci sia un modo per determinare matematicamente da quella tabella tutti i numeri corretti, se qualcuno trova o sa come, si faccia avanti perfavore. EDIT Porca miseria non tiene le spaziature della tabella, spero abbiate capito come funziona ! È come un triangolo la cui ipotenusa è formata da 1 1 1 in diagonale. Ultima modifica di Joestar : 08-02-2004 alle 23:14. |
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: May 2003
Messaggi: 3946
|
grazie kmq!
ora mi aiuteresti kn 1 altro? devo aprire un img bitmap 400x300 @ 16colori e visualizzarla @ skermo!! grassssssie!!! |
|
|
|
|
|
#16 |
|
Senior Member
Iscritto dal: May 2003
Messaggi: 3946
|
uppino !
è x domani! |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:14.



















