# alle möglichen Zahlenkombinationen



## maxdata (22. Jan 2009)

Hallo,

kennt jemand eine Möglichkeit womit man alle möglichen Zahlenkombinationen von Lotto am Samstag
auflisten kann. Es gibt 13.983.816 Möglichkeiten. Kann man sowas auch mit einem Java Programm
schreiben ?


Grüße
maxdata


----------



## Ebenius (22. Jan 2009)

Nein. Das geht nur mit Zettel und Stift. ;-) Natürlich geht's.

Aber wer braucht sowas? Sind zeilenweise in UTF-8 immerhin ~111MB.

[ edit ] Hier wird schon sowas ähnliches gemacht: Alle Kombinationen von Zahlenreihe ohne Doppelungen


----------



## maxdata (22. Jan 2009)

hi,

danke aber der Kollege zeigt die verschied. Anordnungsmöglichkeiten. Das sind hier immer wieder
die selben Zahlen nur in verschiedener Reihenfolge.

Was ich brauche ist Kobinationen der Zahlen.

123456
234567
345678
......
.........


Gruß
maxdata


----------



## Gast (22. Jan 2009)

mal rekursiv, ist doch nicht zu schwierig, oder?

```
public class LottoTest {
	public static int[] zahlen = new int[6];
	public static final int MAX = 49;

	public static void print() {
//		try {
//			Thread.sleep(100);
//		} catch (InterruptedException e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
		System.out.println();
		for (int zahl : zahlen) {
			System.out.print(zahl + " ");
		}
	}

	public static void doit(int fehlen, int start) {
		if (fehlen > 0) {
			for (int i = start; i <= MAX; i++) {
				zahlen[zahlen.length - fehlen] = i;
				doit(fehlen - 1,i+1);
			}
		}else{
			print();
		}

	}

	public static void main(String[] args) {
		doit(6,1);
	}
}
```


----------



## Gast (22. Jan 2009)

Mit Threads und ohne static und so:::


```
public class LottoTest implements Runnable {
	private int[] zahlen;
	private int aus;
	private int anzZahlen;
	public LottoTest(int aus, int anzZahlen) {
		this.aus = aus;
		this.anzZahlen = anzZahlen;
		this.zahlen = new int[anzZahlen];
	}

	private void print() {
		System.out.println();
		for (int zahl : zahlen) {
			System.out.print(zahl + " ");
		}
	}

	private void doit(int fehlen, int start) {
		if (fehlen > 0) {
			for (int i = start; i <= aus; i++) {
				zahlen[zahlen.length - fehlen] = i;
				doit(fehlen - 1,i+1);
			}
		}else{
			print();
		}

	}

	public void run() {
		doit(anzZahlen, 1);		
	}
	public static void main(String[] args) {
		Thread thread  = new Thread(new LottoTest(49, 6));
		thread.start();
		
	}

}
```


----------



## maxdata (22. Jan 2009)

danke vielmals !


Grüße
maxdata


----------

