C ++ - Programm, das Zufallszahlengenerator verwendet, um Sätze zu erstellen?

2 Antworten

  • lo_tsawqawLieblingsantwort

    Ich werde keinen Code für Sie schreiben, aber ich habe einige Ideen.

    Wenn es Ihnen egal ist, ob das Programm echte Wörter verwendet, sollte die Implementierung ziemlich einfach sein.

    Lassen Sie das Programm zunächst für jeden Satz entscheiden, wie viele Wörter der Satz enthalten soll. Lassen Sie dann für jedes Wort das Programm entscheiden, wie viele Buchstaben das Wort enthalten soll. Das Programm sollte zwischen Konsonanten und Vokalen wechseln, um sicherzustellen, dass der Kauderwelsch noch aussprechbar ist. Das Programm könnte auch eine festgelegte Wahrscheinlichkeit für das Einfügen von Klammern oder Kommas haben, möglicherweise 1 zu 7 für ein Komma und 1 zu 40 für Klammern. Stellen Sie sicher, dass das erste Wort im Satz mit einem Großbuchstaben beginnt. Am Ende des Satzes sollte das Programm entscheiden, ob es mit einem Punkt, einem Fragezeichen oder einem Ausrufezeichen endet. Sie können dann für beliebig viele zufällige Sätze wiederholen.



    Wenn Sie möchten, dass das Programm ECHTE Wörter verwendet, müssen Sie etwas mehr Arbeit leisten. Zunächst benötigen Sie eine Liste von Wörtern, sozusagen ein 'Wörterbuch'. Dies muss viele Informationen enthalten, wenn Sie Sätze mit echten Wörtern bilden möchten. Sie benötigen Informationen über den Teil der Sprache (Substantiv, Verb, Adjektiv, Adverb, Interjektion usw.), das Geschlecht (männlich, weiblich, neutral), wenn das Wort ein Verb ist, ob es unregelmäßige Formen hat oder ob das Verb ist transitiv oder intransitiv, wenn das Wort ein Substantiv ist, ob es unregelmäßige Pluralformen hat (z. B. 'Datum' und 'Daten' oder 'Gans' und 'Gänse') oder ob es ein Eigenname ist, keiner, einige oder die ganze Zeit , wenn das Wort ein Adjektiv ist, ob es durch Hinzufügen von -ly zu einem Adverb gemacht werden kann, und im Grunde genommen Informationen für jede andere Frage, die beim Bilden eines Satzes auftauchen könnte. Das ist wahrscheinlich mehr als genug Arbeit. ABER, sobald dies erledigt ist, kann das Programm den Zufallszahlengenerator zusammen mit den Regeln des Grammatikers verwenden, um einen Satz 'Rahmen' zu erstellen, und dann einfach zufällige Wörter des richtigen Teils der Sprache auswählen, um 'die Lücken auszufüllen'. Beispielsweise:

    (? Artikel?) (? Adjektiv?) (Substantiv) (? Adverb?) (Verb) (? Artikel?) (? Adjektiv?) (? Substantiv?)

    Die Fragezeichen kennzeichnen optionale Wortarten für einen solchen Rahmensatz. Das Programm kann Sätze wie die folgenden bilden:

    eine schwarze Schlange sehen Bedeutung

    Eine blaue Aprikose imprägniert die großen Affen liebenswürdig.

    Das Auto mag die Realität.

    Scheunen halten widerwillig einen sicheren Schlauch.

    Ein Baby erbricht.

    Wenn Sie wirklich fortgeschritten sind, können Sie andere 'Satz-Frameworks' erstellen:

    (? Artikel?) (? Adjektiv?) (Substantiv) war (? Adverb?) (Verb-Past_Participle)? von? (? Artikel?) (? Adjektiv?) (? Substantiv-Posessiv?) (? Artikel?) (? Adjektiv?) (? Substantiv?)

    Ein Samtgott wurde fast von den glücklichen Dollars des köstlichen Chefs zerschlagen.

    was bedeutet 10

    Matthew wurde total von Butter geröntgt.

    Ein roter Verkaufsautomat wurde vom Stolz aufgeblasen.

    Die lächerlichen Baseballbälle wurden verschluckt.

    Abschließend müssen Sie all Ihre Sprachkenntnisse und Fähigkeiten zur Problemlösung - ganz zu schweigen von viel Zeit - auf diese anwenden. Eigentlich klingt es nach etwas, das ich gerne ausprobieren würde. Schicken Sie mir eine E-Mail, wenn Sie interessiert sind.

  • Senthil

    Schauen Sie hier, ich kann Ihnen die Antwort nicht geben, aber ich kann den Code für ein ähnliches Programm geben. Hier ist es:

    / * Magic.cpp * /

    / * Dieses Programm generiert eine Zufallszahl und erhält Eingaben

    vom Benutzer. Wenn beide übereinstimmen, sagen Sie 'Magie', sonst 'Sie wissen nein

    Magie' */

    #einschließen

    #einschließen

    #einschließen

    int generate ();

    void main ()

    {

    int rand_no;

    int input_no;

    clrscr ();

    Was bedeutet die Zahl 9 in der Bibel?

    Kosten<<'What do you think is the Magic Number in my mind : ';

    cin >> input_no;

    rand_no = generate ();

    if (rand_no == input_no)

    Mond in der Synastrie des 8. Hauses

    Kosten<<'Woow! You are quite a magician!!!';

    sonst

    Kosten<<'Phoof! You know no magic!!!';

    getch ();

    }}

    int generate ()

    {

    int rand_no;

    rand_no = rand ();

    return rand_no;

    }}