- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 10 von 25

Thema: Ein Zahlenproblem

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    73
    Beiträge
    11.077
    Ich bin eher an Hexzahlen gewöhnt um alle mögliche Kombinationen zu erstellen, da es am einfachsten geht. Die grösste Zahl wäre 9876543210 d = 24CB016EA h was "nur" 34 Bits braucht und die grössere bis 2FFFFFFFF h könnte man weg lassen. Danach muss man natürlich jede Hexzahl in eine Dezimale wandeln.

    Es müssten natürlich noch dezimale Zahlen, wo sich gleiche Ziffern wiederholen, entfernt werden.
    Geändert von PICture (29.07.2011 um 19:19 Uhr)
    MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!

  2. #2
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Sag mal wie hast du das so schnell hinbekommen?
    Das ist reine Übungssache :) Allerdings war es zufällig auch mein erstes C-Programm mit Rekursion.

    ...Danach muss man natürlich jede Hexzahl in eine Dezimale wandeln.
    Und dann muss mannur noch alle Zahlen mit doppelten Ziffern entfernen...

    Allerdings hab ich mal noch eine Frage: Warum kommst du nur auf 362880 Möglichkeiten ? Es müssten doch 3628800 sein…
    bzw. was meinst du mit "Da der Zähler voreilt…"?
    Die Ausgabe des Zählerstandes erfolgt am Ende der For-Schleife für die erste Ziffer:
    Code:
        Print "Zwischenstand: " ; Nr ; " Kombinationen erzeugt"
    Next N(1)
    
    Decr Nr
    Zu diesem Zeitpunkt sind alle Kombinationen die mit "0" anfangen generiert. Allerdings wurde die Nr-Variable schon für die nächste Runde erhöht, deshalb eilt der Zähler an dieser Stelle immer um 1 vor.

    Ich denke, auch das Symmetrieproblem ist gelöst:
    Code:
    				if(0) // 1 bedeutet: Ausgabe der Ziffernkombinationen
    				{
    					PrintInt(nr);
    					SerWrite(": ", 2);
    					for(y=0; y<ziffern; y++)
    					{
    						while(!(UCSRA & 0x20));
    						UDR = muster[y]+'0';
    					}
    					SerWrite("  ", 2);
    					for(y=0; y<ziffern; y++)
    					{
    						while(!(UCSRA & 0x20));
    						UDR = 9-muster[y]+'0';
    					}
    					SerWrite("\r\n", 2);
    				}
    Damit kann man die äußerste Schleife im Hauptprogramm von 0 bis 4 laufen lassen und durch die Spiegelung der Werte wird der Bereich 5 bis 9 generiert.

    Wozu kann man solche Kombinationen eigentlich nutzen?
    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
  •  

fchao-Sinus-Wechselrichter AliExpress