Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Anordungsproblem bei Kombinatorik

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
General



Anmeldungsdatum: 26.11.2006
Beiträge: 149

BeitragVerfasst am: 19.03.2007, 22:17    Titel: Anordungsproblem bei Kombinatorik Antworten mit Zitat

Moin,
also folgendes, wir haben heute in der Schule mal wieder mit Kombinatorki gearbeitet(bin 12.Klasse Mathe Leistungskurs) und da bin ich auf eine Idee gekommen. Foldendes, der User soll ein Wort eingeben und das Programm soll alle möglichen Anordnungen der Buchstaben im Wort ausgeben und berechnen wieviel Möglichkeiten es gibt, wie man die Möglichkeiten berechnete is denke ich eher ma das kleiner übel. Achja, wir beachten den Versuch so das wir zum beispiel bei dem Wort "Hallo" NICHT daovn ausgehen das wir die "l" als unterschiedliche buchstaben behanden müssen, sondern als gleiche. Bei meinem Namen wäre es dann zum beispiel "Christopher" wären die möglichkeiten = 11!( != Fakultät) wenn ich aber davon ausgehe das die "h" als unterschiedliche beachtet werden dann wäre es 11! / 2 aber das wollen wir ja net, wir wollen eifach nur die möglichen anordnungen der Buchstaben, ich hoffe ihr wisst wie es meine und könnt mir helfen?=
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 19.03.2007, 23:37    Titel: Antworten mit Zitat

Hi,
Bartsch, Mathematische Formeln hat Folgendes geschrieben:
Anzahl der Permutationen von n verschiedenen Elementen
P(n)=1*2*3*...*n=n!
Permutationen von n Elementen mit Wiederholung
Unter den Elementen befinden sich je r, s, t gleiche Elemente:
Pr,s,t(n)=n!/(r!*s!*t!)
..
Beispiele:
Wieviele verschiedene fünfstellige Zahlen lassen sich aus den
Ziffern 2, 3, 3, 5, 5 bilden?
P2,2(5)=5!/(2!*2!) = (1*2*3*4*5)/((1*2)*(1*2))=30
War es das, was du wissen wolltest?
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 20.03.2007, 00:14    Titel: Antworten mit Zitat

Ich glaube, es ging eher um die Umsetzung der Ausgabe.

Mir fällt im Moment nur die Möglichkeit ein, jedes Wort mit jedem vorherigen zu vergleichen, was bei 11 Buchstaben seeeehhr aufwändig wird (allerdings ist auch die Anzahl der Bildschirmseiten nicht ohne zwinkern ). Ansonsten würde ich zuerst zählen, wie oft welcher Buchstabe im Wort vorkommt, eventuell das Wort auch mal nach seinen Buchstaben sortieren (also z. B. cehhioprrst). Vielleicht lässt sich dann eher was anfangen.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 20.03.2007, 08:58    Titel: Antworten mit Zitat

Was Du wahrscheinlich suchst, ist ein Kombinationengenerator. Diesen Fall hatte ich früher bereits schon mehrere Male gebraucht und lässt sich am einfachsten mit Rekursion implementieren:

http://beilagen.dreael.ch/QB/PERM_GEN.BAS

Praktische Anwendung davon:

http://www.dreael.ch/Deutsch/Download/Mastermind-Knacker.html
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 20.03.2007, 19:50    Titel: Antworten mit Zitat

Der unterscheidet jetzt aber die gleichen Buchstaben, oder nicht?
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
General



Anmeldungsdatum: 26.11.2006
Beiträge: 149

BeitragVerfasst am: 20.03.2007, 22:13    Titel: Antworten mit Zitat

ja ich unterscheide die gleichen buchstaben, nur jetzt is mir noch net so ganz klar wie ich nu das coden kann das, er alle buchstaben umteilt bis alle möglichkeiten durch sind
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 20.03.2007, 22:14    Titel: Antworten mit Zitat

Und wo ist da die (genaue) Frage? Zunge rausstrecken
Bzw. wo genau liegt da nun das Problem?
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 20.03.2007, 22:26    Titel: Antworten mit Zitat

Wenn ich die Frage richtig verstehe, soll bei Eingabe von 'TOLL' folgendes ausgegeben werden:
Code:
TOLL          TLOL          TLLO
OTLL          OLTL          OLLT
LTOL          LTLO          LOTL
LOLT          LLTO          LLOT


Bei dreals Programm kommen aber alle Wörter doppelt vor, weil z. B. zwischen TOL1L2 und TOL2L1 unterschieden wird.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
General



Anmeldungsdatum: 26.11.2006
Beiträge: 149

BeitragVerfasst am: 21.03.2007, 08:24    Titel: Antworten mit Zitat

ja genau, nemored hat das problem erfasst, aber die problematik ist erstma ausßenvor also jeder buchstabe auch wenn er doppelt vor kommt is egal, erstma will ich nur wissen wie man es coden kann das man alle buchstaben vertauscht solange bis keine möglichkeiten mehr da sind
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 21.03.2007, 14:35    Titel: Antworten mit Zitat

Da hilft dir das Tool von dreael weiter
http://beilagen.dreael.ch/QB/PERM_GEN.BAS
Hier als FB-Version für Strings:
Code:
' Permutationengenerator:
' Erzeuge alle möglichen Anordnungen mit den Buchstaben aus String s
Dim Shared As Integer Permtn = 0
Dim Shared As String s
Dim As Integer i,n
Declare Sub RekursivSchritt (e As Integer, x As Integer, t As String)

Screen 18,32
s = "volta"
n= Len(s)
Redim Shared As Integer frei(n)
For i = 1 To n
  frei(i) = -1
Next i

RekursivSchritt(0, n, "")
Print "Total Permutationen:"; Permtn
Sleep
End

Sub RekursivSchritt (e As Integer, x As Integer, t As String)
  Dim As Integer i
  If e < x Then
    For i = 1 To x
      If frei(i) Then
        frei(i) = 0
        RekursivSchritt (e + 1, x, t + Mid(s, i, 1))
        frei(i) = -1
      End If
    Next i
  Else
    ' Führe gewünschte Aktion aus mit der gefundenen Permutation
    Print t;" ";
    Permtn += 1
  End If
End Sub

_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz