Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI Osmo Pocket 4: la gimbal camera tascabile cresce e ha nuovi controlli fisici
DJI Osmo Pocket 4: la gimbal camera tascabile cresce e ha nuovi controlli fisici
DJI porta un importante aggiornamento alla sua linea di gimbal camera tascabili con Osmo Pocket 4: sensore CMOS da 1 pollice rinnovato, gamma dinamica a 14 stop, profilo colore D-Log a 10 bit, slow motion a 4K/240fps e 107 GB di archiviazione integrata. Un prodotto pensato per i creator avanzati, ma che convince anche per l'uso quotidiano
Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori
Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori
Il primo headset open-back della linea INZONE arriva a 200 euro con driver derivati dalle cuffie da studio MDR-MV1 e un peso record di soli 199 grammi
Nutanix cambia pelle: dall’iperconvergenza alla piattaforma full stack per cloud ibrido e IA
Nutanix cambia pelle: dall’iperconvergenza alla piattaforma full stack per cloud ibrido e IA
Al .NEXT 2026 di Chicago, Nutanix ha mostrato quanto sia cambiata: una piattaforma software che gestisce VM, container e carichi di lavoro IA ovunque, dall’on-premise al cloud pubblico. Con un’esecuzione rapidissima sulle partnership e sulla migrazione da VMware
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


DJI Osmo Pocket 4: la gimbal camera tascabile cresce e ha nuovi controlli fisici DJI Osmo Pocket 4: la gimbal camera tascabile cr...
Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori Sony INZONE H6 Air: il primo headset open-back d...
Nutanix cambia pelle: dall’iperconvergenza alla piattaforma full stack per cloud ibrido e IA Nutanix cambia pelle: dall’iperconvergenza alla ...
Recensione Xiaomi Pad 8 Pro: potenza bruta e HyperOS 3 per sfidare la fascia alta Recensione Xiaomi Pad 8 Pro: potenza bruta e Hyp...
NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abb...
L'Iran avrebbe acquistato un satellite p...
VivaTech compie dieci anni e raddoppia p...
Le vendite di CPU si sono ridotte di 25 ...
Starship: SpaceX ha completato lo static...
Huawei FusionSolar Roadshow 2026: l'inno...
Nuovo trailer per Street Fighter: un fil...
Sovranità sui dati: arriva la pri...
Schede video NVIDIA e AMD di nuovo su Ma...
Robot aspirapolvere, TV OLED, iPhone 17 ...
EUREKA J15 Pro Ultra super interessante ...
Intel porta l'AI nei notebook entry-leve...
6000 mAh, 5G e 108MP a meno di 200€: ecc...
FRITZ!Mesh Set 2700: Wi-Fi 7 in tutta la...
Amazfit Cheetah 2 Pro: lo smartwatch per...
Intel, focus su GPU workstation e datace...
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: 17:53.


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