2 Stimmen

Wie kann ich einen Algorithmus zur Erzeugung zufälliger Zeichenfolgen erstellen?

Ich möchte zufällige Zeichenfolgen generieren wie:

sssder
tvmwww
66rfdd
123123
oo007oo
1234
2020
1111
rrrr
r8r8r
uiuiu
wewewe
fefefe
abced
xyz..

Konkret möchte ich eine Zeichenkette mit einer Länge von 5 bis 8 Zeichen, die ist leicht zu merken . Ist dies möglich?

0 Stimmen

@Tyler: Ja, das ist der Grund, warum ich fragte, ist dies möglich.. hehh, und viele andere f***s versuchen, down vote ich weiß nicht, warum diese Leute haben eine solche schamlose Aktivität :). wie auch immer danke für Ihre Antwort :)

2 Stimmen

Der Grund, warum Ihre Frage abgelehnt wurde, ist, dass sie nicht klar definiert ist. Das ist so, als hätten Sie gepostet: "Wie programmiere ich einen Computer so, dass er schöne Bilder erzeugt?

0 Stimmen

Ich glaube, dass er versucht, Zeichenketten zu erhalten, die leichter zu buchstabieren sind, z. B. "mabokufi" ist (zumindest für mich) leichter zu merken als "lxkrpuol". Leichter zu buchstabieren = leichter zu merken.

2voto

Ben Reisner Punkte 662

Wenn es um zufällige IDs oder etwas Ähnliches geht, empfehle ich

uniqid(...)

http://us3.php.net/manual/en/function.uniqid.php> http://us3.php.net/manual/en/function.uniqid.php

2voto

snicker Punkte 6020

Verwenden Sie einen genetischen Algorithmus. Richten Sie Ihre Fitnessfunktion so ein, dass sie entscheidet, wie "zufällig" Ihre Zeichenkette ist (d. h. liegen zwei Konsonanten nebeneinander? Nun, das ist nicht so gut wie ein Symbol oder eine Zahl neben einem Konsonanten... aber wie weit sind die Konsonanten im Alphabet voneinander entfernt? sind sie gleich groß?) Lassen Sie das Programm ein paar Tage lang laufen, und Sie werden garantiert die ausgefallenste, zufälligste 5-8-Zeichen-Kombination finden, die Sie sich je erhofft haben.

0 Stimmen

Ich habe es versäumt, auf Ihr Anliegen "leicht zu merken" einzugehen. Ihre Fitnessfunktion könnte auch die Nähe der Buchstaben auf der Tastatur, die phonetische Ähnlichkeit mit Wörtern in der Sprache des Benutzers, lustige Muster auf dem Ziffernblock usw. überwachen.

2voto

Jeff Meatball Yang Punkte 35809

Ich beginne mit ein paar persönlichen Mutmaßungen über "leicht zu merken":

Eine Zeichenkette ist normalerweise leicht zu merken, wenn es ein oder mehrere Muster gibt, wie z. B.:

  • es hat Wiederholungen von Zeichen
  • sie enthält Zeichenfolgen (a-b-c, 1-2-3)
  • es "klingt" wie ein Wort (Phonemfolgen, die echte Wörter imitieren: "diskow")

Schreiben Sie ein Programm, das zufällige Sequenzen, die auf der Grundlage der Regeln generiert werden, "bewertet", und nehmen Sie die besten Ergebnisse. Das ist wie eine Monte-Carlo-Methode, um die gewünschte Ausgabe zu finden. Sie können Ihre Bewertungsmethode anpassen, wenn Ihnen das Ergebnis nicht gefällt.

Natürlich gibt es auch andere "leicht zu merkende" Zeichenfolgen, die nicht in die oben genannten Kategorien passen:

  • wenn er eine persönliche Bedeutung hat (Ihr Geburtstag)
  • wenn es VIEL wiederholt wird... (jeder weiß, dass Pi = 3,1415 ist, weil es uns beigebracht wurde) Obwohl ich argumentieren würde, dass PI besser als leicht abrufbar und nicht als leicht zu merken (im Gedächtnis zu speichern) zu beschreiben ist.

1voto

Azad Salam Punkte 146

Ein einfacher Ansatz könnte sein:

1) eine leere Zeichenkette initialisieren
2) Erzeugen einer Zufallszahl zwischen[0,25]
3) Addiere 97 zu dieser Zahl
4) Erstelle ein Zeichen für diese Zahl
5) das Zeichen an die bestehende Zeichenkette anhängen
* Führen Sie die Schritte 1-5 so oft aus, wie es der Länge der Zeichenkette entspricht.

Sagen wir, ich möchte Strings der Länge 6-10. Für jede Zeichenfolge müssen Sie diesen Code ausführen

i = rand (6,10)
str = "";
while(i--)
{
   num = rand (97,97+25);
   c = chr(num);
   str = str.c;
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X