Fischer-Bayern.de
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Buchstaben generator oder so....

 
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
engel.benjamin
•->
•->


Anmeldedatum: 08.05.2006
Beiträge: 10

BeitragVerfasst am: 06.07.2006 - 17:09    Titel: Buchstaben generator oder so.... Antworten mit Zitat

Also mal ne frage wie bekomm ich aus 18 Buchstaben alle möglichen kombinationen die jeweils 6 Zeichen Lang sind raus, wobei die Buchstaben variabel sein müssen..

wäre echt cool wenn da jemand ne Idee hätte wie mann das in nem Script umsetzen könnte...

Muss auch nicht unbedingt Applescript sein wenns andererster schneller geht.

mfg
benny
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Skeeve
•---->
•---->


Anmeldedatum: 20.04.2006
Beiträge: 1067

BeitragVerfasst am: 07.07.2006 - 01:52    Titel: Antworten mit Zitat

Das hier liefert Dir alle Permutationen. Also nicht nur die ersten 6 Stellen. Müßte ich noch mal ein bischen aufbohren. Ist eine alte Lösung zum Perl Minigolf Permutationen

Gib in einem Terminalfenster ein (ACHTUNG! Nur eine Zeile! Kein Return mittendrin):

Code:
perl -e 'sub p{@p=(p(@_,pop@p),@p)for@p;$p{join"",@_}=$/if!@p;pop}@p=@ARGV;p;print%p'

Und schreibe dahinter die Buchstaben. Also z.B.

Code:
perl -e 'sub p{@p=(p(@_,pop@p),@p)for@p;$p{join"",@_}=$/if!@p;pop}@p=@ARGV;p;print%p' A B C D
BCAD
BDCA
CBDA
DCAB
ABCD
BADC
ACDB
ABDC
DABC
BACD
CDBA
ACBD
CABD
BCDA
ADBC
CDAB
BDAC
DBAC
DCBA
ADCB
CBAD
DACB
CADB
DBCA

Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Skeeve
•---->
•---->


Anmeldedatum: 20.04.2006
Beiträge: 1067

BeitragVerfasst am: 07.07.2006 - 10:33    Titel: Aufgebohrt... Antworten mit Zitat

Jetzt habe ich es aufgebohrt!

Code:
perl -e 'sub p{if($l--){@p=(p(@_,pop@p),@p)for@p};$p{join"",@_}=$/if!$l++;pop}($l,@p)=@ARGV;p;print%p' 3 a b c d


Du gibst also zuerst die Anzahl der Stellen (hier 3) und dann die einzelnen Zeichen an.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Skeeve
•---->
•---->


Anmeldedatum: 20.04.2006
Beiträge: 1067

BeitragVerfasst am: 07.07.2006 - 10:41    Titel: P.S. NEIN! Antworten mit Zitat

NEIN! Das ist nicht der Standard Perl Programme zu schreiben! Razz Dies ist mein Lösungsvorschlag für eine Perl Minigolf Runde gewesen. Dabei kommt es darauf an, eine Aufgaba mit so wenig Zeichen wie möglich zu lösen.

Ihr müßt aber bedenken:
1. Ich bin 'ne faule Sau
2. Die Lösung war schon da
3. Es hilft dem Engelchen oder auch nicht
3a) Wenn er nur das ERgebnis will, hilft es
3b) Wenn es eine Hausaufgabe war, hilft es nicht, denke ich. Versuch das Script mal einem Lehrer zu erklären!!

Nix für ungut, Engelchen, aber es hat Spaß gemacht, mal wieder ein alter Perlgolf Script auszugraben...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
engel.benjamin
•->
•->


Anmeldedatum: 08.05.2006
Beiträge: 10

BeitragVerfasst am: 10.07.2006 - 07:58    Titel: Danke Antworten mit Zitat

Hi danke, das funktioniert super, allerdings dauerts auch en bißchen (4 Stunden auf nem G5 Dual *grins*), danke....


mfg
Benny
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Skeeve
•---->
•---->


Anmeldedatum: 20.04.2006
Beiträge: 1067

BeitragVerfasst am: 10.07.2006 - 09:03    Titel: Re: Danke Antworten mit Zitat

engel.benjamin hat Folgendes geschrieben:
Hi danke, das funktioniert super, allerdings dauerts auch en bißchen (4 Stunden auf nem G5 Dual *grins*), danke...

Bitteschön... Aber da war doch noch ein Fehler drin!

Da fehlte ein ++$l. So wurde dir doch ein Zeichen zuwenig ausgegeben, oder?

Korrigiert:
Code:
perl -e 'sub p{if($l--){@p=(p(@_,pop@p),@p)for@p};$p{join"",@_}=$/if!$l++;pop}($l,@p)=@ARGV;++$l;p;print%p' 3 a b c d


Aber probier mal, ob das hier schneller ist. Es speichert die Daten nicht zwischen, sondern gibt sie direkt aus:
Code:
perl -e 'sub p{if($l--){@p=(p(@_,pop@p),@p)for@p};print@_,$/if!$l++;pop}($l,@p)=@ARGV;++$l;p'
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Skeeve
•---->
•---->


Anmeldedatum: 20.04.2006
Beiträge: 1067

BeitragVerfasst am: 10.07.2006 - 10:50    Titel: Antworten mit Zitat

Es läuft schneller!
Code:
time perl -e 'sub p{if($l--){@p=(p(@_,pop@p),@p)for@p};print@_,$/if!$l++;pop}($l,@p)=@ARGV;++$l;p'  6 a b c d e f g h i j k l m n o p q r > /dev/null

real    89m54.716s
user    65m57.717s
sys     0m43.911s

Rechner:
1,67 GHz PowerPC G4
1,5GB DDR2 SDRAM
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Forum Alle Zeiten sind GMT + 2 Stunden
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.


Powered by phpBB © 2001, 2002 phpBB Group
Deutsche Übersetzung von phpBB.de


AppleScript für absolute Starter