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 08-12-2007, 22:51   #1
pdor90
Member
 
Iscritto dal: Aug 2007
Messaggi: 70
c# tobola senza ripetizione dei numeri

vorrei fre un programma in visual c# tipo tombola ma ho un problema i numeri che si ripetono ho provato a utilizziare il .next(1,91) ma niente anche mettendolo in un vettore e facendo + controlli con dei cicli for ho sempre delle ripetizioni voi avete soluzioni per questo problemi?
pdor90 è offline   Rispondi citando il messaggio o parte di esso
Old 08-12-2007, 23:49   #2
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Ti serve in pratica una permutazione dei numeri da uno a 90

un metodo semplice e' quello di partire con un array con i valori da 1 a 90, cominciare dalla prima posizione e scambiarla con un'altra a caso (e ottieni il primo valore). Poi passi alla posizione successiva e fai uguale e cosi' via per tutte le posizioni.
Non so il C#, ti offro una versione python che dovrebbe darti cmq l'idea di come funzioni:
Codice:
def tombola_casuale():
     estrazioni = range(1,91)
     for i in range(89):
             j = random.randint(i,89)
             estrazioni[i],estrazioni[j] = estrazioni[j],estrazioni[i]
             yield estrazioni[i]
     yield estrazioni[89]
Se non vuoi star li' a usare gli iteratori in C#, semplicemente invece di ritornare il valore man mano calcola tutto l'array e ritornalo alla fine, e userai l'array risultante per le estrazioni.
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele
marco.r è offline   Rispondi citando il messaggio o parte di esso
Old 09-12-2007, 00:06   #3
¬A or B
Junior Member
 
Iscritto dal: Nov 2007
Città: Cosenza
Messaggi: 13
Un altro metodo potrebbe essere quello di inserire i numeri da 1 a 90 in una lista, quindi generi numeri a caso da 0 fino alla taglia della lista meno 1.
Questo numero random lo utilizzi come indice per accedere agli elementi della lista. In questo modo scegli un numero proveniente dalla lista e quindi lo rimuovi. Quando genererai un nuovo numero casuale accederai ad un nuovo elemento della lista che, per forza, non potrà essere un numero già estratto (quelli estratti vengono rimossi).
¬A or B è offline   Rispondi citando il messaggio o parte di esso
Old 09-12-2007, 17:05   #4
pdor90
Member
 
Iscritto dal: Aug 2007
Messaggi: 70
grazie per ora mi avete fatto venire in mente un modo
pdor90 è offline   Rispondi citando il messaggio o parte di esso
Old 09-12-2007, 17:37   #5
pdor90
Member
 
Iscritto dal: Aug 2007
Messaggi: 70
a or b ho capito quello che mi vuoi dire mi basta rendere invisibile la list box e non ho problemi ottimo metodo grazie vi faro' sapere se funziona
pdor90 è offline   Rispondi citando il messaggio o parte di esso
Old 09-12-2007, 18:53   #6
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2794
Probabilmente lui parlando di lista non intendeva una listbox ma un array.
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 10-12-2007, 08:09   #7
¬A or B
Junior Member
 
Iscritto dal: Nov 2007
Città: Cosenza
Messaggi: 13
In effetti con "lista" intendevo una struttura dati tipo "linked list". Tramite questa struttura simuli il sacchetto con i numeri. Ecco perché quando estrai un numero lo rimuovi dalla lista, operazione che è molto semplice fare su una lista. Questa operazione la puoi fare anche tramite un array, però ogni volta che estrai un numero devi stare attento a ricompattare l'array altrimenti rischi che ad una estrazione successiva tiri fuori un numero già estratto oppure estrai un "buco" nel senso che restituisci un numero non valido se i numeri estratti li sostituisci nell'array con qualcosa come -1 (un'alternativa sarebbe rigenerare il numero random se l'accesso all'array ti porta su un "buco" fino a quando non ottieni l'indice di un numero valido).
¬A or B è offline   Rispondi citando il messaggio o parte di esso
Old 10-12-2007, 10:02   #8
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
La soluzione di ¬A or B è ottima soprattutto in presenza di pochi elementi (90 sono molto pochi).
cionci è 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, ...
Revolut ha consegnato passaporti e selfi...
Office 2021, 3 anni di aggiornamenti di ...
Dopo 23 anni di silenzio, Warcraft 3 spi...
Roblox sfida l'ecosistema gaming: app st...
OpenAI accusata di plagio dai migliori m...
Altro attacco hacker dell'IA: gli agenti...
Stiamo davvero perdendo il controllo del...
Microsoft perde un pilastro: Frank Shaw ...
Diablo V annunciato a sorpresa: il colpo...
Meno di 5 euro per il 5G: l'offerta Kena...
World of Warcraft: Forever è il Classic+...
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...
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: 07:23.


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