Creazione di combinazione di parole

di il
5 risposte

Creazione di combinazione di parole

Ciao a tutti, sono un autodidatta di C# e stavo provando a fare un'esercizio per la combinazione di parole in modo da creare frasi con parole random.

Esempio: Ho n parole in input e tramite il mio programma in python dovrei creare la maggior parte di combinazione possibili fatte di 12 parole, disposte in maniera random (non è necessario che creino una frase di senso compiuto).

Per esempio, parole in input: abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse",
"access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act",
"action","actor","actress","actual","adapt","add","addict","address","adjust","admit",

tipo frase: abandon, ability, able, about, above, absorb, absurd, abuse, access, accident, account.
abandon, able, ability....
...... x 12 volte


Sto provando in questi giorni a crearlo ma sto trovando alcune difficoltà nella scrittura.
Inoltre sarei grato ache se mi rivelate se già conoscete un software che svolge questa operazione.

Grazie mille per il vostro aiuto.

5 Risposte

  • Re: Creazione di combinazione di parole

    VI spiego in dettaglio….
    Il mio obiettivo è quello di creare un programma in c# che svolga queste funzioni:

    1. prende una lista di parole in ingresso (circa 2200 parole). Generalmente queste parole vengono create random da un'app, ma li posso anche copiare e inserire in una lista o in un file txt da utilizzare ome input
    Es . Lista = [“address","adjust","admit"..]

    2. creo una combinazione di parole tra quelle messe in input, in modo da formare righe di 12 parole.
    Es. Lista1 = [address","adjust","admit"]
    Lista2 = [address",admit","adjust","]
    Lista 3 =[ admit",", adjust","] …..
    …..
    Lista n-esima combinazione (generalmente le combinazioni dovrebbero essere n! / ((n-12)! 12!)= 2200! / (2200-12)!*12!), se non mi ricordo male)

    3. ottengo come output questa matrice con 12 colonne (lunghezza (frase) =12 parole ), e con 2200! / (2200-12)!*12! Righe


    Grazie per l'aiuto.
  • Re: Creazione di combinazione di parole

    Prima prova che ho eseguito in visual studio:
    using System.Windows.Forms; 
    namespace MescolaParole
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                listBox1 = new Lista[];
                string[] parole = { "abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse",
                                    "access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act",
                                    "action","actor","actress","actual","adapt","add","addict","address","adjust","admit" };
                string frase = "";
                for (int ciclo1 = 0; ciclo1 < parole.Length; ciclo1++)
                {
                    frase = parole[ciclo1 ] + ", ";
                    for (int ciclo2 = 0; ciclo2 < parole.Length; ciclo2++)
                    {
                         if (ciclo1 != ciclo2) frase += parole[ciclo2] + ", ";
                    }
                    listBox1.Items.Add(frase);
                }
            }
        }
    }
    Però mi dà sempre un errore e sicuramente è una versione semplicata del mio obiettivo....
  • Re: Creazione di combinazione di parole

    Ciao, innanzitutto ti faccio notare che questa è la sezione C/C++ e non C# o python, inoltre non ho capito se da un vocabolario di n parole desideri creare una frase random di k=12 parole, oppure desideri generare tutte le sequenze possibili, che, volendo essere precisi, non sono combinazioni, ma disposizioni (visto che l'ordine influisce sulla distinzione tra una sequenza e l'altra; inoltre dovresti anche specificare se è ammessa o meno la ripetizione di una stessa parola all'interno della frase).
  • Re: Creazione di combinazione di parole

    Vuole generare le seed phrase dei bitcoin. Già spiegato nell'altra sezione che le combinazioni sono troppe.

    Quanta gente che perde tempo ed energie appresso a ste criptovalute...
  • Re: Creazione di combinazione di parole

    Weierstrass ha scritto:


    Vuole generare le seed phrase dei bitcoin. Già spiegato nell'altra sezione che le combinazioni sono troppe.
    Non so (quasi) nulla di bitcoin, ma se l'intento è quello di generare le disposizioni (semplici o con ripetizione) di n elementi presi k alla volta, allora si può fare, anche se non è proprio semplicissimo, soprattutto se non si utilizzano funzioni/librerie preconfezionate. Poi ovviamente, pur non volendo immagazzinare le singole sequenze, il tempo di esecuzione dipenderà da n e k.


    P.S.
    Quando dite combinazioni, intendete disposizioni o proprio combinazioni?
Devi accedere o registrarti per scrivere nel forum
5 risposte