Avatar billede tlunde Nybegynder
05. august 2003 - 10:02 Der er 2 kommentarer og
2 løsninger

Random tal

Hej,
Jeg skal have lavet en form for løkke der hiver et random tal frem mellem 1-13, men tallene der bliver hevet frem nå IKKE være ens. Altså 5 må ikke komme 2 gange.

Hvordan gør jeg det?
Avatar billede simonvalter Praktikant
05. august 2003 - 10:09 #1
du kan vel lave en tæller for hvert tal .. eller komme tallene i et array og checke og de findes deri.
Avatar billede riversen Nybegynder
05. august 2003 - 10:13 #2
int index = 0;
    int[] array = new int[5];
    while( index < 5 )
    {
        int value = (int) ( Math.random() * 13 + 1  );

        boolean ok = true;
        for( int i = 0; i < array.length; i++ )
            if( array[i] == value )
            {
                ok = false;
                break;
            }

        if( ok )
        {
            array[index] = value;
            index++;
        }
    }

måske det kan gøres bedre.
Avatar billede arne_v Ekspert
05. august 2003 - 10:27 #3
import java.util.Random;

public class Rand1to13 {
    private static Random rng;
    private boolean[] used;
    private int nused;
    public Rand1to13() {
        rng = new Random();
        used = new boolean[13];
        nused = 0;
    }
    public int nextValue() throws Exception {
        if(nused >= 13) {
            throw new Exception("No unused numbers available");
        }
        int v;
        do {
            v = 1 + rng.nextInt(13);
        } while(used[v-1]);
        used[v-1] = true;
        nused++;
        return v;
    }
   
    public static void main(String[] args) throws Exception {
        Rand1to13 ran = new Rand1to13();
        for(;;) {
            System.out.println(ran.nextValue());
        }
    }
}
Avatar billede tlunde Nybegynder
05. august 2003 - 14:57 #4
takker for hjælpen begge to!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB