Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-04-2011, 12:23   #1
I24Zi3L
Senior Member
 
Iscritto dal: Mar 2005
Messaggi: 497
[C#] Programma combinazioni con 80 numeri in gruppi di 5

Salve, volevo chiedervi dei suggerimenti su come fare un programma che mi generi tutte le combinazioni con i numeri da 1 a 80 in gruppi da 5.

Grazie per l'aiuto.
I24Zi3L è offline   Rispondi citando il messaggio o parte di esso
Old 20-04-2011, 22:01   #2
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Quote:
Originariamente inviato da I24Zi3L Guarda i messaggi
Salve, volevo chiedervi dei suggerimenti su come fare un programma che mi generi tutte le combinazioni con i numeri da 1 a 80 in gruppi da 5.

Grazie per l'aiuto.
Intanto prova a dirci quante sono.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 25-04-2011, 09:12   #3
I24Zi3L
Senior Member
 
Iscritto dal: Mar 2005
Messaggi: 497
Ho fatto un piccolo Windows Form con un bottone ed una textbox e questo codice nella pagina cs:
Codice:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;

namespace Combinazioni
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int A = 1;
            int B = 2;
            int C = 3;
            int D = 4;
            int E = 5;

            do
            {
                if (A != B &&
                    A != C &&
                    A != D &&
                    A != E)
                {
                    if (B != C &&
                        B != D &&
                        B != E)
                    {
                        if (C != D &&
                            C != E)
                        {
                            if (D != E)
                            {
                                textBox1.Text += A + " - " +
                                                 B + " - " +
                                                 C + " - " +
                                                 D + " - " +
                                                 E + "\n";
                            }
                        }
                    }
                }

                if (E == 80)
                {
                    E = 5;
                    D++;

                    if (D == 80)
                    {
                        E = 5;
                        D = 4;
                        C++;
                    }
                    if (C == 80)
                    {
                        E = 5;
                        D = 4;
                        C = 3;
                        B++;
                    }
                    if (B == 80)
                    {
                        E = 5;
                        D = 4;
                        C = 3;
                        B = 2;
                        A++;
                    }
                }

                E++;

            }
            while (A != 77);

        }
    }
}
Vi sembra corretto?
Il mio PC è da oramai 4 ore che elabora i dati di questo programma. E' forse andato in loop?
I24Zi3L è offline   Rispondi citando il messaggio o parte di esso
Old 25-04-2011, 10:16   #4
clockover
Senior Member
 
L'Avatar di clockover
 
Iscritto dal: Oct 2004
Messaggi: 1945
Quote:
Originariamente inviato da I24Zi3L Guarda i messaggi
Vi sembra corretto?
ma neanche per idea... cominciamo dal principio: come gugoXX ha già suggerito.... quante possono essere le combinazioni?
clockover è offline   Rispondi citando il messaggio o parte di esso
Old 25-04-2011, 10:24   #5
I24Zi3L
Senior Member
 
Iscritto dal: Mar 2005
Messaggi: 497
Quasi quante quelle del superenalotto...
I24Zi3L è offline   Rispondi citando il messaggio o parte di esso
Old 25-04-2011, 10:27   #6
clockover
Senior Member
 
L'Avatar di clockover
 
Iscritto dal: Oct 2004
Messaggi: 1945
Quote:
Originariamente inviato da I24Zi3L Guarda i messaggi
Quasi quante quelle del superenalotto...
si ma quante...come si contano le combinazioni di un insieme di n elementi a gruppi di k
clockover è offline   Rispondi citando il messaggio o parte di esso
Old 25-04-2011, 10:36   #7
I24Zi3L
Senior Member
 
Iscritto dal: Mar 2005
Messaggi: 497
Beh dovrebbe essere 80!/5!(75!)=24040016
I24Zi3L è offline   Rispondi citando il messaggio o parte di esso
Old 25-04-2011, 11:28   #8
clockover
Senior Member
 
L'Avatar di clockover
 
Iscritto dal: Oct 2004
Messaggi: 1945
Ti propongo un algoritmo ricorsivo

Codice:
funzione(array di appoggio, indice, n, k, DA){
    maxIndex = indice + n - k;
    for i = DA to maxIndex 
        appoggio[i] = i
        se indice < k-1
            funzione(array, indice + 1, n, k, j + 1)
indice è un indice che scorre tutti i numeri che ti servono a te e parte da 0
n = 80 nel tuo caso
k = 5 nel tuo caso
DA parte da zero ed è l'indice dell'array temporaneo

ho volutamente omesso molte cose ma il succo è:
1) - per ogni cella dell'array di appoggio tu puoi inserire numeri che partono da DA fino a maxIndex
2) - ad ogni iterazione chiami la funzione stessa incrementando l'indice dell'array temporaneo

prendi carta e penna e prova a eseguire l'algoritmo con pochi numeri...
clockover è offline   Rispondi citando il messaggio o parte di esso
Old 25-04-2011, 22:20   #9
I24Zi3L
Senior Member
 
Iscritto dal: Mar 2005
Messaggi: 497
Scusami ma non riesco ad interpretare bene l'algoritmo che mi proponi.
In che linguaggio è?
I24Zi3L è offline   Rispondi citando il messaggio o parte di esso
Old 25-04-2011, 23:22   #10
clockover
Senior Member
 
L'Avatar di clockover
 
Iscritto dal: Oct 2004
Messaggi: 1945
Non è in nessun linguaggio...è in pseudocodice
Ammetto di averlo scritto frettolosamente ma non è difficile da capire.. prova con carta e penna a simularlo magari con numeri fino a 5 presi a gruppi di 3 o 4
clockover è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
La Serie A con DAZN e Amazon Prime con l...
Giochi Ubisoft su Steam senza Ubisoft Co...
Miami Beach ha autorizzato la maxi opera...
Apple regala un altro anno di funzioni s...
Alla fine è successo davvero: Vol...
Il meglio di Amazon del weekend in uno s...
Speciale TV in offerta su Amazon: Hisens...
Non c'è pace per Trezor: 347.000 e-mail ...
È un portatile Dell e li vale tut...
Apple iPhone 17 Pro Max 256GB a 1.195€ (...
GPT-6 Astra è davvero AGI o non s...
LG OLED G6S 48'' a 845€ e G6 55'' a 1368...
Mantax Otax: il malware Android che crip...
Musk incassa un altro maxi contratto IA:...
Le vendite di EV sono esplose in tutto i...
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: 19:09.


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