Delphi-PRAXiS
Seite 1 von 5  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi 9Live Buchstaben Salat-Spiel (https://www.delphipraxis.net/69213-9live-buchstaben-salat-spiel.html)

NMR 11. Mai 2006 19:27


9Live Buchstaben Salat-Spiel
 
Hi,
ich hätte mal eine frage^^, ich würde gern ein Programm schreiben, dass ein Buchstabelsalt
zn gelvo in alle möglichen kombinationen wiedergibt.
hier z.b
gelvo
ogelv
vogel
lvoge
elvog

ich wollte die zeichenkette dann in array machen und bla..dann in einer schleife...aber ka irgenwie
klappt das nicht so ganz. Wär super wenn ihr mir dabei helfen könnten!!!
Danke euch schon mal jetzt
Bis dann
NMR

Nicolai1234 11. Mai 2006 19:30

Re: 9Live Buchstaben Salat-Spiel
 
das sind aber nicht alle kombinationen...

Such am besten mal bei google nach Anagramm. Ich denke, das hilft mehr, als sich ein Programm ohen Wörterbuch etc. zu schreiben.

NMR 11. Mai 2006 19:44

Re: 9Live Buchstaben Salat-Spiel
 
nee will das schon gerne selber schreiben ^^ das doch der spaß an der sache...

3_of_8 11. Mai 2006 19:53

Re: 9Live Buchstaben Salat-Spiel
 
Die Anzahl der Möglichkeiten berechnet sich bei n Stellen immer nach n!. Also 1*2*3...*n

Bei 9 Stellen wären das dann 9! = 1*2*3*4*5*6*7*8*9 = 362880 Möglichkeiten.

Das nur so nebenbei.

Du musst einfach das Ding als Array nehmen und dann auf zufällige Stellen des Wortes zugreifen, wobei du aufpassen musst, auf keinen bereits verwendeten Buchstaben zu stoßen.

omata 11. Mai 2006 19:54

Re: 9Live Buchstaben Salat-Spiel
 
<delphi>wegen Nichtbeachtung gelöscht</delphi>

tn249 11. Mai 2006 20:02

Re: 9Live Buchstaben Salat-Spiel
 
Zitat:

Zitat von 3_of_8
Die Anzahl der Möglichkeiten berechnet sich bei n Stellen immer nach n!. Also 1*2*3...*n

Bei 9 Stellen wären das dann 9! = 1*2*3*4*5*6*7*8*9 = 362880 Möglichkeiten.

Das nur so nebenbei.

Du musst einfach das Ding als Array nehmen und dann auf zufällige Stellen des Wortes zugreifen, wobei du aufpassen musst, auf keinen bereits verwendeten Buchstaben zu stoßen.

Stimmt nicht wenn ein Buchstabe mehr als einmal vorkommt.

"Stamm" zB hat 5! / 2!.

Die 2! kommt daher, weil die "m"s in Stamm nicht unterscheidbar sind.

Gruß
Thomas

leddl 11. Mai 2006 20:11

Re: 9Live Buchstaben Salat-Spiel
 
Diese Dinger nennen sich "Permutationen". Dazu gibts hier in der DP einige Codes, zB einen von Hagen (der wohl - so wie wir Hagen kennen - recht effizient sein dürfte ;)): http://www.delphipraxis.net/internal...ect.php?t=7561
Dann gibts in der CodeLib noch einen von glkgereon: http://www.delphipraxis.net/internal...ct.php?t=74277

Ich hab mir beide Codes jetzt nicht genauer angeschaut, aber du bekommst die Permutationen zB, indem du rekursiv in deiner Ausgangsfolge 2 Stellen vertauschst. Der Code dazu ist nichtmal allzu schwer. Ich denke aber mal, daß Hagen und glkgereon sich etwas mehr Gedanken gemacht und dann einen etwas performanteren Code entwickelt haben ;)

NMR 11. Mai 2006 21:18

Re: 9Live Buchstaben Salat-Spiel
 
jo vielen dank klappt wunderbar!!!

3_of_8 11. Mai 2006 21:21

Re: 9Live Buchstaben Salat-Spiel
 
Zitat:

Zitat von tn249
Stimmt nicht wenn ein Buchstabe mehr als einmal vorkommt.

"Stamm" zB hat 5! / 2!.

Die 2! kommt daher, weil die "m"s in Stamm nicht unterscheidbar sind.

Ich gebe zu, ich habe mich undeutlich ausgedrückt. Ich meinte "Man muss aufpassen, dass man nicht eine Stelle des Wortes, also ein Zeichen des Wortes zwei mal dran nimmt, im Sinne von dass man zwei mal den gleichen Index hat.

Der Jan 11. Mai 2006 21:23

Re: 9Live Buchstaben Salat-Spiel
 
Leider gibt es ja in Delphi keine STL :) Dort gibt es die Funktionen "next_permutation" und "prev_permutation" genau für diese Zwecke.
Allerdings gibt es doch für Delphi ähnliche Containerklassen wie in der STL, hab ich mal irgendwo gelesen, glaub sogar von den JEDIs. Oder ich irre mich komplett... :gruebel: Aber falls nicht, könnte es dort doch auch solche Funktionen geben.
btw: ein Kleines Prog für Buchstaben-Salat: Wortsuche


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:21 Uhr.
Seite 1 von 5  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz