Generatore di combinazioni

domenica 14 febbraio 2010 - 18.05

Alexia Profilo | Newbie

Buon Giorno Sono Sempre io.... visto che in rete non ho trovato nulla.....siccome sto sempre lavorando a quel benedetto "lotto".. volevo chiederVi: siccome ho fatto un form dove seleziono dei numeri come in una specie di tabellone... e questa form ha nel suo interno 90 label numerate da 1 a 90... che se le clicco cambiano colore e se.. viceversa....
ora: il meno è fargli capire quale è stata selezionata.... ma come posso fare se seleziono ad esempio 10 lbl a farle fare un giro di combinazioni quante sono le possibilità....
ora Vi spiego se gioco 10 n° al superenalotto: tutto a sistema integrale cioè tutte le combinazioni: se gioco 6 n° costa 50cent e genera una sola colonna... se gioco 7n° sono 3,50 e genera 7 colonne... se gioco 8 n° genera 28 colonne e 14€ ... se 9 84 colonne e 42€ e arrivati a 10 210 colonne e 105€..... un modo c'è per forza ma qualcuno mi può instradare?

Grazie a Tutti.....

e Sempre Riconoscenza e un Sauto a una persona che mi ha Aiutato un Mondo...

Grazie

Alexia

aiedail92 Profilo | Expert

Ciao

La risposta è il numero di combinazioni semplici di N oggetti presi 6 alla volta, ovvero N su 6.

Il risultato si calcola usando il coefficiente binomiale, definito in questo modo:

binomial(n, k) := n! / (k! * (n-k)!)

Che, con k = 6, diventa

get_number(n) := n! / (720 * (n - 6)!)

Dove n! indica il fattoriale di n.

La tua funzione quindi diventerebbe:

int get_number(int n) { if(n < 6) return 0; int fact = 1; for(i = n - 5; i <= n; i++) fact *= i; return fact / 720; }

Per quanto riguarda il prezzo, basta moltiplicare il numero di combinazioni per 0.5€

Luca

Alexia Profilo | Newbie

Ciao Luca e Grazie della Risposta :-))
poi tra un pò mi ci metterò dietro... prendo il coraggio e provo....))
una cosa ancora.. io ho il tabellone che clicco sulle lbl e mi si accende il n°... ok il tuo codice lo dovro mettere sull'evento di un button.....
ma la cosa più importante: ste combinazioni ora che ci penso devono andare a popolare x forza un datagrid??? altrimenti???? dovro aprire una form inserirci un dtg x poterlo far popolare...(((
e se è cosi so Cavoli Amari ah ah ah ah ah ah ah.....
Grazie Mille di nuovo......

Alexia Profilo | Newbie

Ciao Luca... ho provato inun pò dimodi ma sempre senza risultato.....
data la miaesperienza in materia e cioòè misera...... ma li la soluzione è mica in C??... i "lavoro in VB 2005....
m sono fatta una cura di Il coefficiente binomiale sul web ma a portarlo in codice mi è un pò difficile....
non è che qualche anima buona ha una sorta di progetto da allegarmi??
provo ancora a cercare in attesa di qualche risposta da parte Vs....
Grazie a Tutti.... Ciao

Alexia

aiedail92 Profilo | Expert

Ciao

La funzione tradotta in VB.Net diventa così:

Function get_number(ByVal n As Integer) As Integer If n < 6 Then Return 0 End If Dim fact As Integer = 1 For i As Integer = n - 5 To n fact = fact * i End For Return fact / 720 End Function

L'altra domanda invece, perdonami ma non l'ho capita

Luca

Alexia Profilo | Newbie

Ciao Luca e Grazie di nuovo....
Ok ora Ti Spiego meglio
io ho creato questa sorta di tabellone dall'1 al 90... x non andare sul complesso seleziono 7lbl dall1 al 7... poi ci vorrà un button che dia il via al calcolo delle colonne che in sto caso diventeranno 7...
1) il tuo codice come viene richiamato dal mio button??
2) nel momentoche genererà queste 7 colonne dovrò ben visionarle?!! o in msgbox, una sorta di DGV??
Grazie Mille

aiedail92 Profilo | Expert

Ciao, scusa il ritardo

La mia funzione serve solo a calcolare il numero di combinazioni possibili, e la chiami semplicemente passando come argomento il numero di “label selezionate”

Le colonne generate, beh, non vedo che senso abbia mostrarle all'utente... Ha scelto lui le label, saprà bene quali sono i numeri che ci stanno dentro...

Luca
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5