Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
General
Anmeldungsdatum: 26.11.2006 Beiträge: 149
|
Verfasst am: 19.03.2007, 22:17 Titel: Anordungsproblem bei Kombinatorik |
|
|
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 |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 19.03.2007, 23:37 Titel: |
|
|
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 |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 20.03.2007, 00:14 Titel: |
|
|
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 ). 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 |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 20.03.2007, 19:50 Titel: |
|
|
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 |
|
 |
General
Anmeldungsdatum: 26.11.2006 Beiträge: 149
|
Verfasst am: 20.03.2007, 22:13 Titel: |
|
|
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 |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 20.03.2007, 22:14 Titel: |
|
|
Und wo ist da die (genaue) Frage?
Bzw. wo genau liegt da nun das Problem? _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 20.03.2007, 22:26 Titel: |
|
|
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 |
|
 |
General
Anmeldungsdatum: 26.11.2006 Beiträge: 149
|
Verfasst am: 21.03.2007, 08:24 Titel: |
|
|
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 |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 21.03.2007, 14:35 Titel: |
|
|
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 |
|
 |
|