Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Destiny Rising: quando un gioco mobile supera il gioco originale
Destiny Rising: quando un gioco mobile supera il gioco originale
Tra il declino di Destiny 2 e la crisi di Bungie, il nuovo titolo mobile sviluppato da NetEase sorprende per profondità e varietà. Rising offre ciò che il live service di Bungie non riesce più a garantire, riportando i giocatori in un universo coerente. Un confronto che mette in luce i limiti tecnici e strategici dello studio di Bellevue
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo
Plaud Note Pro è un registratore digitale elegante e tascabile con app integrata che semplifica trascrizioni e riepiloghi, offre funzioni avanzate come template e note intelligenti, ma resta vincolato a un piano a pagamento per chi ne fa un uso intensivo
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy?
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy?
Google Pixel 10 è uno smartphone che unisce una fotocamera molto più versatile rispetto al passato grazie allo zoom ottico 5x, il supporto magnetico Pixelsnap e il nuovo chip Tensor G5. Il dispositivo porta Android 16 e funzionalità AI avanzate come Camera Coach, mantenendo il design caratteristico della serie Pixel con miglioramenti nelle prestazioni e nell'autonomia. In Italia, però, mancano diverse feature peculiari basate sull'AI.
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


Destiny Rising: quando un gioco mobile supera il gioco originale Destiny Rising: quando un gioco mobile supera il...
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo Plaud Note Pro convince per qualità e int...
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy? Google Pixel 10 è compatto e ha uno zoom ...
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre Prova GeForce NOW upgrade Blackwell: il cloud ga...
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco Ecovacs Deebot X11 Omnicyclone: niente più...
Interlune creerà un centro di ric...
Stop Killing Games: 97% delle firme conv...
La GTX 2080 Ti mai arrivata sul mercato,...
Hoolow Knight: Silksong, il gioco che a ...
Duolingo crolla in Borsa: la minaccia ar...
Battlefield 6: i giocatori console potra...
Citroen Racing, la marca ritorna alle co...
Windows 10 ESU: come partecipare al prog...
ASUS Vivobook 16X a meno di 470€ su Amaz...
Con Agent Payments Protocol di Google gl...
Windows 10 muore, gli attivisti insorgon...
NVIDIA sarà il primo cliente di T...
Stellantis cancella il pick-up elettrico...
Microsoft termina il supporto per Office...
VaultGemma di Google è il primo L...
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: 02:07.


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