Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    generazione nu,meri random tutti diversi

    come faccio in c++ a generarmi un vettore che contiene tutti i numeri da 1 a n, in modo casuale?!? grazie a tutti!!! ciao!
    http://www.neonargon.com/
    ----:::[ GoTeNsSj4 ]:::----

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Prova ad utilizzare questo semplice algoritmo (descritto a parole):

    1) Crei due array di n elementi e popoli il primo con tutti i valori da 1 ad n (al primo posto metti 1, al secondo metti 2 e così via...)

    2) Setti una variabile a (n-1) (la chiamo x) e una a 0 (la chiamo y)

    3) Controlli se x vale 0. Se è maggiore di 0 fai estrarre un valore a caso al programma fra 0 e x (la chiamo z), altrimenti vai al punto 6

    3) Prendi il valore che stà in posizione z nel vettore1 e lo metti in posizione y nel vettore 2

    4) Togli dal primo vettore l'elemento appena estratto (shiftando eventualmente tutti i successivi di una posizione). Decrementi x di uno e aumenti y di uno

    5) Torni al punto 3

    6) Prendi il primo elemento nel vettore1 e lo metti in posizione (n-1) nel vettore2

    Hai finito: il vettore2 contiene n elementi in ordine casuale compresi tutti fra 1 e n.


    PS: Ho tenuto conto del fatto che gli indici dell'array di n elementi vanno da 0 a (n-1).


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.