- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 21 bis 25 von 25

Thema: Ein Zahlenproblem

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #22
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo Searcher

    Deine Lösung funktioniert leider auch nicht richtig, weil sie nicht alle Ziffern von '0' bis 9' berücksichtigt. Ausgabe deiner Variante:

    Code:
    0123
    0132
    0231
    0213
    0312
    0321
    1230
    1203
    1302
    1320
    1023
    1032
    2301
    2310
    2013
    2031
    2130
    2103
    3012
    3021
    3120
    3102
    3201
    3210
    
    24
    Kombinationen und Anzahl der Kombinationen. Richtig wäre 10*9*8*7=5040 Kombinationen. Hier die Kombinationen mit drei Stellen:
    https://www.roboternetz.de/community...2&d=1312105805

    Gruß

    mic

    [Edit]

    Das C-programm macht genau desselbe wie die Bascom-Variante. Es wird ein Array mit der Anzahl der gewünschten Stellen erzeugt und jede Stelle nacheinander mit allen Werten ausprobiert. Wenn der Wert für die aktuelle Stelle schon im Array vorhanden ist, wird dieser Wert übersprungen. Wenn man mit dem Wert für die erste Stelle startet, kann man alle weiteren Stellen mit dem selben Algorithmus errechnen:
    Code:
    void suchen(uint8_t z) // z ist der Index im Array, es wird also die z-Stelle erzeugt
    {
    	for(x[z]=0; x[z]<10; x[z]++) // Werte von 0 bis 9 erzeugen
    	{
    		gefunden=0; // flag wird gestezt, wenn Wert schon im Array erhalten ist
    		for(y=0; y<z; y++) if(x[y]==x[z]) gefunden=1; // Alle Elemente im Array vor aktuellem Index prüfen
    		if(!gefunden) // Wenn der Wert erstmalig im Array auftritt wird er im Array unter dem aktuellen Index espeichert
    		{
    			if(z < (ziffern-1)) suchen(z+1); // Rekursion! // Wenn noch nicht alle Stellen berechnet sind wird die nächste Stelle berechnet
    			else
    			{
    				ausgabe(); // Ausgabe der Ziffernkombinationen in x[0] bis x[ziffern-1] 
    				nr++;
    			}
    		}
    	}
    }
    Geändert von radbruch (31.07.2011 um 14:49 Uhr)
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests