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

    [OT] Random

    Salve a tutti, volevo chiedervi come si può scrivere un algoritmo che faccia questo:

    Dato un range di valori estrarre un valore casuale tra essi, ma la condizione è che il primo numero è ripetuto una volta, il secondo 2, il terzo 3 volte e così via...

    Se non mi sono spiegato bene, vi faccio un esempio:

    dato il range [1;5] devo estrarre un numero tra 1 e 5 ma le probabilità di uscita dei numeri sono diverse:
    1,2,2,3,3,3,4,4,4,4,5,5,5,5,5
    quindi 1 ha pochissime probabilità di uscire, a differenza del 5.

    Altro esempio in range [8;10]

    8,9,9,10,10,10

    e così via...

    come posso fare??

    grazie ciao

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    41
    ciao puoi semplicemente riempire un array così:

    1,2,2,3,3,3,4,4,4,4,5,5,5,5,5

    dopo di che randomizzi un numero tra 0 e 14 che corrisponderà all'indice dell'array...fatto ciò hai sorteggiato un numero che scambierai con l'ultimo dell' array

    quindi se l'indice randomizzato è 5 punta al numero 3

    fatto ciò scambi il numero sorteggiato con l'ultimo dell'array quindi:

    1,2,2,3,3,5,4,4,4,4,5,5,5,5,3

    e riduci di 1 il range per il random , che diventa tra 0 e 13.
    ripeti l'operazione fino a che ti rimane solo un numero...

    è il metodo più semplice che mi è venuto in mente...spero di averti aiutato ...ciao

  3. #3
    prova però a eseguire questa operazione in un range [0;10000] VVoVe: ... sicuramente finisce la memoria....

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    41
    scusa pensavo fosse un classico esercizio per imparare e quindi l'ho semplificato al massimo...un altra idea e dare una valenza al numero da estrarre ogni volta che viene estratto decrementarla di uno e quando arriva a zero spostarla al fondo dell'array come nelle mia soluzione precedente

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.