Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi
Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi
Con la prima rete 5G Standalone attiva in Italia, WINDTRE compie un passo decisivo verso un modello di connettività intelligente che abilita scenari avanzati per imprese e pubbliche amministrazioni, trasformando la rete da infrastruttura a piattaforma per servizi a valore aggiunto
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh
OPPO Find X9 Pro punta a diventare uno dei riferimenti assoluti nel segmento dei camera phone di fascia alta. Con un teleobiettivo Hasselblad da 200 MP, una batteria al silicio-carbonio da 7500 mAh e un display da 6,78 pollici con cornici ultra ridotte, il nuovo flagship non teme confronti con la concorrenza, e non solo nel comparto fotografico mobile. La dotazione tecnica include il processore MediaTek Dimensity 9500, certificazione IP69 e un sistema di ricarica rapida a 80W
DJI Romo, il robot aspirapolvere tutto trasparente
DJI Romo, il robot aspirapolvere tutto trasparente
Anche DJI entra nel panorama delle aziende che propongono una soluzione per la pulizia di casa, facendo leva sulla propria esperienza legata alla mappatura degli ambienti e all'evitamento di ostacoli maturata nel mondo dei droni. Romo è un robot preciso ed efficace, dal design decisamente originale e unico ma che richiede per questo un costo d'acquisto molto elevato
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 10-10-2010, 11:06   #1
pare93
Member
 
L'Avatar di pare93
 
Iscritto dal: Jul 2009
Messaggi: 268
[C#] Combinazione semplice

Ragazzi qualcuno riesce a tradurmi la combinazione semplice (n x) oppure nCx in linguaggio C# ... non riesco proprio a darne fuori
Ricordo che (n x) = n! / (x! * (n - x)!)
Grazie mille
pare93 è offline   Rispondi citando il messaggio o parte di esso
Old 10-10-2010, 11:27   #2
Rsk
Senior Member
 
L'Avatar di Rsk
 
Iscritto dal: Dec 2006
Messaggi: 314
Quote:
Originariamente inviato da pare93 Guarda i messaggi
Ragazzi qualcuno riesce a tradurmi la combinazione semplice (n x) oppure nCx in linguaggio C# ... non riesco proprio a darne fuori
Ricordo che (n x) = n! / (x! * (n - x)!)
Grazie mille
Cosa non riesci a fare?
Il fattoriale (!) di N è dato dal prodotto dei primi N numeri interi positivi.
Inoltre il fattoriale di zero è 1.
Se realizzi la funzione che calcola il fattoriale hai finito..
Provaci
__________________
Athlon64 x2 5600 - AsRock ALiveNF5eSata2+ - kingston 2GB ddr2 800 - GeForce 8800gts 320MB
Rsk è offline   Rispondi citando il messaggio o parte di esso
Old 10-10-2010, 11:35   #3
pare93
Member
 
L'Avatar di pare93
 
Iscritto dal: Jul 2009
Messaggi: 268
Ci proverò ancora ma non assicuro niente
pare93 è offline   Rispondi citando il messaggio o parte di esso
Old 10-10-2010, 12:14   #4
tuccio`
Senior Member
 
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
Quote:
Originariamente inviato da pare93 Guarda i messaggi
Ragazzi qualcuno riesce a tradurmi la combinazione semplice (n x) oppure nCx in linguaggio C# ... non riesco proprio a darne fuori
Ricordo che (n x) = n! / (x! * (n - x)!)
Grazie mille
giusto per la precisione, quello è il binomio di newton, che rappresenta anche il numero di combinazioni semplici di n elementi presi k a k (quindi identificarlo con le combinazioni semplici non è propriamente corretto)

e poi, chiaramente, sarebbe inefficiente calcolare tutti i fattoriali uno per uno, ti conviene cercare un metodo un minimo più furbo, ad esempio sfruttando il fatto che

n!/k! = n * (n - 1) * ... * (n - k + 1)

oppure

puoi prepararti un vettore V di dimensione n+1, in cui poni v[0] = 1 (perché 0! = 1)

e poi calcoli tutte le celle V[i] = i * V[i - 1]

così almeno avrai calcolato tutti i fattoriali che ti servono e potrai calcolare tutto con V[n] / (V[x] * V[n - x])
tuccio` è offline   Rispondi citando il messaggio o parte di esso
Old 10-10-2010, 18:50   #5
pare93
Member
 
L'Avatar di pare93
 
Iscritto dal: Jul 2009
Messaggi: 268
Si capisco il metodo che vorresti usare ma sinceramente a me sembra troppo lungo e con un grande spreco di memoria.

Domani cerco di sviluppare un algoritmo ... Grazie lo stesso comunque

Inoltre devo dire che la tua idea è molto interessante non ci avrei mai pensato
pare93 è offline   Rispondi citando il messaggio o parte di esso
Old 10-10-2010, 20:37   #6
tuccio`
Senior Member
 
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
boh sì ma è chiaro che non ti serve a molto in questo caso, ti conviene calcolarli iterativamente

l'unica cosa è stare attenti a non fare prodotti già fatti precedentemente
tuccio` è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2010, 16:58   #7
pare93
Member
 
L'Avatar di pare93
 
Iscritto dal: Jul 2009
Messaggi: 268
In che senso non fare prodotti già fatti in precedenza?

Ad ogni modo ci ho pensato ora a mente lucida ... posto il codice che mi è venetuto.

Premetto che non l' ho testato lo stò facendo al momento perchè sono in un computer della scuola

Ricordo la formula che è nCx = n! / x! * (n - x)!

Codice:
int fattN = n, fattX = x, fattNX = n - x;
double comb;

// Calcolo di n!
for (int i = 1; i <= n; i++)
      fattN *= n - i;

// Calcolo di x!
for (int i = 1; i <= x; i++)
      fattX *= x - i;

// Calcolo di (n - x)!
for (int i = 1; i <= (n - x); i++)
      fattNX *= (n - x) - i;

// Infine calcolo la combinazione semplice
comb = fattN / fattX * fattNX;
Ecco credo sia giusto ma il problema non è finito qui
Infatti io ero partito nel calcolare il valore atteso in una distribuzione binomiale ... ci proverò dai ...
pare93 è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2010, 17:11   #8
Kralizek
Senior Member
 
L'Avatar di Kralizek
 
Iscritto dal: Feb 2003
Città: Stockholm (SE)
Messaggi: 1343
non va! così ti fai 3 fattoriali che ti puoi facilmente risparmiare con qualche condizione al contorno ed un po' di semplificazioni
Kralizek è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2010, 17:13   #9
astorcas
Senior Member
 
L'Avatar di astorcas
 
Iscritto dal: Jan 2005
Città: Siena
Messaggi: 1313
Mai sentito parlare di memoizzazione (in english memoization)?

Basterebbe l'esempio su wikipedia per chiarirti cosa ti stanno suggerendo gli altri
astorcas è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2010, 18:03   #10
tuccio`
Senior Member
 
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
Quote:
Originariamente inviato da pare93 Guarda i messaggi
In che senso non fare prodotti già fatti in precedenza?

Ad ogni modo ci ho pensato ora a mente lucida ... posto il codice che mi è venetuto.

Premetto che non l' ho testato lo stò facendo al momento perchè sono in un computer della scuola

Ricordo la formula che è nCx = n! / x! * (n - x)!

Codice:
int fattN = n, fattX = x, fattNX = n - x;
double comb;

// Calcolo di n!
for (int i = 1; i <= n; i++)
      fattN *= n - i;

// Calcolo di x!
for (int i = 1; i <= x; i++)
      fattX *= x - i;

// Calcolo di (n - x)!
for (int i = 1; i <= (n - x); i++)
      fattNX *= (n - x) - i;

// Infine calcolo la combinazione semplice
comb = fattN / fattX * fattNX;
Ecco credo sia giusto ma il problema non è finito qui
Infatti io ero partito nel calcolare il valore atteso in una distribuzione binomiale ... ci proverò dai ...
il valore atteso della binomiale di parametri n p (n lanci con probabilità di successo p) è np

basta pensarla come n eventi A1 .. An che indicano che all'estrazione i-esima c'è un successo.. dunque puoi prendere in considerazione le variabili indicatrici degli eventi Ai, che hanno tutti probabilità di successo p e sono scambiabili, quindi la media è np

per quanto riguarda il calcolo del fattoriale (che non serve, se quello che devi fare è la media della binomiale) quando dicevo che non dovresti fare prodotti già fatti intendo dire che per calcolare (n-k)! in pratica fai

1*2*...*(n-k)

e per calcolare n!

1*2*...*(n-k)*..*n! = (n-k)!*...*n

ecco, non vale la pena fare due volte questi prodotti (il discorso si estende anche a k!)

Ultima modifica di tuccio` : 11-10-2010 alle 18:06.
tuccio` è offline   Rispondi citando il messaggio o parte di esso
Old 12-10-2010, 16:36   #11
pare93
Member
 
L'Avatar di pare93
 
Iscritto dal: Jul 2009
Messaggi: 268
Bè da ma punto di vinta sintattico i duo metodo sono praticamente identici ... sono sompre tre cicli for che vanno da 1 ad n.

Ad ogni modo la speranza matematica in una distribuzione binomiale è data anche dalla sommatoria delle P(X=x) che va da zero ad n.

Quindi avevo pensato anche all' eventualità che l' utente non inserisca 'p' e di conseguenza calcolerei la media con la sommatoria.

Quindi una soluzione logica l' avei già trovata ... scompongo il valore atteso in :
sommatoria della combinazione semplice per la sommatoria della p^x per la sommatoria della q^(n-x). In questo modo risulta molto semplice secondo me tradurla.

Comunque ora ti espongo queste idee ma in questi giorni non ho possibilità di provarla ...
pare93 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi Wind Tre 'accende' il 5G Standalone in Italia: s...
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh OPPO Find X9 Pro: il camera phone con teleobiett...
DJI Romo, il robot aspirapolvere tutto trasparente DJI Romo, il robot aspirapolvere tutto trasparen...
DJI Osmo Nano: la piccola fotocamera alla prova sul campo DJI Osmo Nano: la piccola fotocamera alla prova ...
FUJIFILM X-T30 III, la nuova mirrorless compatta FUJIFILM X-T30 III, la nuova mirrorless compatta
HONOR sta lavorando a uno smartphone con...
Thermaltake MAGFloe 360 Ultra ARGB Sync:...
Xiaomi 15T ora in super offerta su Amazo...
Si stringe il cerchio attorno a TP-Link ...
Amazon cambia i prezzi ancora una volta:...
Imperdibili i Google Pixel 10 a questi p...
Dyson OnTrac in super offerta su Amazon:...
Amazon: la nuova ondata di licenziamenti...
Questo portatile è un mostro: MSI...
Apple Watch Series 11 GPS + Cellular cro...
JBL Clip 5 in forte sconto su Amazon: lo...
Il nuovo top di gamma compatto di OnePlu...
Cresce il divario tra dispositivi elettr...
La missione con equipaggio Shenzhou-21 h...
Il Galaxy S26 Edge potrebbe essere ancor...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 14:07.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v