Alle möglichen Kombinationen von 0-9 (4 stellen)

Algorithmen, Sprachunabhängige Diskussionen zu Konzepten, Programmiersprachen-Design
Benutzeravatar
darksider3
Beiträge: 347
Registriert: Fr Sep 14, 2012 6:26 pm
Wohnort: /dev/sda1
Kontaktdaten:

Alle möglichen Kombinationen von 0-9 (4 stellen)

Beitrag von darksider3 » Sa Dez 01, 2012 5:33 pm

Hey,
Ich bräuchte einen Ansatz, der mir hilft/Zeigt, wie ich alle Kombinationen von (4stellen) 0-9 ausgeben kann(Sprache ist hier egal, Ich denke da werden schleifen variablen und simple Zuweisungen gebraucht).
Als Beispiel Ausgedrückt:
Ich brauche alle Möglichen Kombinationen von 4 Stellen, 0-9, also z.b 0.1.1.2 oder 2.2.2.2 :)

Hat da jemand einen Ansatz? Bzw. einen Vorschlag, wie man das Lösen kann?

MFG
effizienz ist, wenn ich ein loch bohre und hinterher mein nachbar auch ein bild aufhängen kann... ^^
Meine Homepage und der Microblog von mir :)
Live Life dont let Life Live You!
Am meisten Aktiv in Webentwicklung und PHP im Wiki

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Alle möglichen Kombinationen von 0-9 (4 stellen)

Beitrag von cloidnerux » Sa Dez 01, 2012 5:38 pm

Du hast 9 Möglichkeiten und willst alle Kombinationen ausprobieren.
Ich würde 4 schleifen verschachteln und in jeder schleife von 0-10 zählen.
In der Innersten gibst du dann die 4 Zahlen aus.
Wenn man sich aber die Möglichkeiten anschaut:

Code: Alles auswählen

0000
0001
0002
....
9999
bemerkt man, dass dein Beispiel alle Dezimalzahlen von 0 bis 9999 umfasst.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
darksider3
Beiträge: 347
Registriert: Fr Sep 14, 2012 6:26 pm
Wohnort: /dev/sda1
Kontaktdaten:

Re: Alle möglichen Kombinationen von 0-9 (4 stellen)

Beitrag von darksider3 » Sa Dez 01, 2012 5:43 pm

cloidnerux hat geschrieben:[...]Du hast 9 Möglichkeiten und willst alle Kombinationen ausprobieren.
Ich würde 4 schleifen verschachteln und in jeder schleife von 0-10 zählen.
In der Innersten gibst du dann die 4 Zahlen aus.
Wenn man sich aber die Möglichkeiten anschaut:
[...]
bemerkt man, dass dein Beispiel alle Dezimalzahlen von 0 bis 9999 umfasst.
Hey,
Ja da hast du recht. Ich habe grade nur kein Bild davon, wie du das mit den 4 Schleifen meinst. Ich könnte doch genau genommen 1 Schleife schreiben, und in dieser dann immer höher zählen?

Code: Alles auswählen

while($i == 9999){
echo $i;
$i++;
}
Theoretisch müsste ich doch dann nur bis 1000 die Fehlenden Nullen vor die Zahl eintragen?

Mfg
effizienz ist, wenn ich ein loch bohre und hinterher mein nachbar auch ein bild aufhängen kann... ^^
Meine Homepage und der Microblog von mir :)
Live Life dont let Life Live You!
Am meisten Aktiv in Webentwicklung und PHP im Wiki

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Alle möglichen Kombinationen von 0-9 (4 stellen)

Beitrag von cloidnerux » Sa Dez 01, 2012 5:50 pm

Theoretisch müsste ich doch dann nur bis 1000 die Fehlenden Nullen vor die Zahl eintragen?
Ja. Das ist das Konzept.
Mit den 4 Schleifen ist die allgemeinere Lösung, weil du auch den Fall haben könntest 4 Objekte in beliebiger Reinfolge anzuordnen:

Code: Alles auswählen

for(int a = 0; a < 10, a++)
{
for(int b = 0; b < 10, b++)
{
for(int c = 0; c < 10, c++)
{
for(int d = 0; d < 10, d++)
{
printf("%d%d%d%d", a, b, c, d);
}}}}
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
darksider3
Beiträge: 347
Registriert: Fr Sep 14, 2012 6:26 pm
Wohnort: /dev/sda1
Kontaktdaten:

Re: Alle möglichen Kombinationen von 0-9 (4 stellen)

Beitrag von darksider3 » Sa Dez 01, 2012 6:15 pm

cloidnerux hat geschrieben: Mit den 4 Schleifen ist die allgemeinere Lösung, weil du auch den Fall haben könntest 4 Objekte in beliebiger Reinfolge anzuordnen:

Code: Alles auswählen

for(int a = 0; a < 10, a++)
{
for(int b = 0; b < 10, b++)
{
for(int c = 0; c < 10, c++)
{
for(int d = 0; d < 10, d++)
{
printf("%d%d%d%d", a, b, c, d);
}}}}
Das sollte dann doch nur Zahlen wie 1111 und 2222(3333,4444,5555 usw) erzeugen , oder nicht? Sorry, ich hasse schleifen-Programmierung, finde ich unübersichtlich
effizienz ist, wenn ich ein loch bohre und hinterher mein nachbar auch ein bild aufhängen kann... ^^
Meine Homepage und der Microblog von mir :)
Live Life dont let Life Live You!
Am meisten Aktiv in Webentwicklung und PHP im Wiki

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Alle möglichen Kombinationen von 0-9 (4 stellen)

Beitrag von cloidnerux » Sa Dez 01, 2012 6:56 pm

Das sollte dann doch nur Zahlen wie 1111 und 2222(3333,4444,5555 usw) erzeugen , oder nicht? Sorry, ich hasse schleifen-Programmierung, finde ich unübersichtlich
Nein. Du hast 4 Unabhängige Variablen, die unabhängige Werte Produzieren. Wobei d bei jedem Durchlauf von c einmal von 0 - 9 zählt, c bei jedem durchlauf von b einmal von 0 bis 9 zählt und b einmal bei jedem Durchlauf von a von 0-9 zählt.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
darksider3
Beiträge: 347
Registriert: Fr Sep 14, 2012 6:26 pm
Wohnort: /dev/sda1
Kontaktdaten:

Re: Alle möglichen Kombinationen von 0-9 (4 stellen)

Beitrag von darksider3 » Sa Dez 01, 2012 7:27 pm

Ich habe dein Beispiel versucht zu Portieren(nach PHP) aber der gibt mir keine Zahlen. Nach C(++) hab ich auch versucht, aber konnte das nicht nachbasteln^^(Bin ja noch am lernen...^^). Könntest du das mit Includes Posten?
Edit:// Nach PHP hab ich es so Portiert(printf gibt's genauso wie in C/C++)

Code: Alles auswählen

<?php
for( $a = 0; $a < 10, $a++;)
{
for( $b = 0; $b < 10, $b++;)
{
for( $c = 0; $c < 10, $c++;)
{
for( $d = 0; $d < 10, $d++;)
{
printf("%d%d%d%d", $a, $b, $c, $d);
}}}}
?>
MFG
effizienz ist, wenn ich ein loch bohre und hinterher mein nachbar auch ein bild aufhängen kann... ^^
Meine Homepage und der Microblog von mir :)
Live Life dont let Life Live You!
Am meisten Aktiv in Webentwicklung und PHP im Wiki

nouseforname
Beiträge: 236
Registriert: Do Feb 10, 2011 6:31 pm

Re: Alle möglichen Kombinationen von 0-9 (4 stellen)

Beitrag von nouseforname » Sa Dez 01, 2012 10:12 pm

Code: Alles auswählen

#!/usr/bin/php -q
<?php



  for ($k=0;$k<10;$k++) {
    for ($l=0;$l<10;$l++) {
      for ($m=0;$m<10;$m++) {
	for ($n=0;$n<10;$n++) {
	  print($k.'.'.$l .'.'.$m.'.'.$n."\n");
	}
      }
    }
  }

?>
Also das funzt bei mir einwandfrei. Du musst ja nur in jeder Schleife eine Stelle hochzählen.

Benutzeravatar
darksider3
Beiträge: 347
Registriert: Fr Sep 14, 2012 6:26 pm
Wohnort: /dev/sda1
Kontaktdaten:

Re: Alle möglichen Kombinationen von 0-9 (4 stellen)

Beitrag von darksider3 » So Dez 02, 2012 1:22 pm

Jow, jetzt Funktioniert's.
Danke :)
effizienz ist, wenn ich ein loch bohre und hinterher mein nachbar auch ein bild aufhängen kann... ^^
Meine Homepage und der Microblog von mir :)
Live Life dont let Life Live You!
Am meisten Aktiv in Webentwicklung und PHP im Wiki

nouseforname
Beiträge: 236
Registriert: Do Feb 10, 2011 6:31 pm

Re: Alle möglichen Kombinationen von 0-9 (4 stellen)

Beitrag von nouseforname » So Dez 02, 2012 1:57 pm

Bei deiner Version hast DU nur den Fehler gemacht ein , statts des ; zu verwenden. ;)

Antworten