RandomFunktion



  • Hallo zusammen,

    Ich habe folgendes Problem : Ich muss eine Funktion schreiben, die nacheinander Zufallszahlen ausgeben soll. (10 zahlen insgesamt).
    Allerdings soll immer nur dann eine Zahl ausgegeben werden,
    wenn diese noch nicht dran war.

    class cRandom
    {
      int Ermitteln(int RandZahl)
      {
        int ActZahl = RandZahl;
    
        return ActZahl;
      }
    }
    

    Hat jemand evl. eine Idee wie ich das bewerkstelligen kann?



  • Fertige Lösung bietet die Methode shuffle.
    Sortiert allerdings eine List, was aber eigentlich kein
    Problem sein sollte.

    Jockel



  • Ohne jetzt nähere Details zu haben:

    public static void main(String[] args) {
    		// Initialisiere das verwendete Bitfeld sowie den Zufallsgenerator
    		BitSet b = new BitSet();
    		Random r = new Random(System.currentTimeMillis());
    
    		/* 10 unterschiedliche Zahlen ziehen. Die gezogenen Zahlen werden im Bitfeld abgelegt */
    		int cnt = 0;
    		while (cnt < 10) {
    			r.setSeed(System.currentTimeMillis());
    			int num = 1 + Math.abs(r.nextInt()) % 100;
    			if (!b.get(num)) {
    				b.set(num);
    				++cnt;
    			}
    		}
    
    		System.out.println(b.toString());
    	}
    


  • Hallo,

    Ich hab den Code getestet. Allerdings funktioniert der Zufall, lediglich bei einem hohen Zahlenbereich. Wenn ich 10 Zahlen im Wertebereich 0-9 ausgeben will, kriege ich immer Stur die Reihenfolge 0,1,2,3,4, etc.

    Und nochwas : Ich kenne mich mit Bitfeldern nicht aus, kann mir jemand erklären wie ich die Werte aus dem Bitfeld in ein Integer Array bekomme?

    Danke im Voraus...


Anmelden zum Antworten