Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    18

    [JAVA] Stringhe generabili

    Salve ragazzi,
    il mio problema è quello di verificare quanti lemmi possono essere generati da una grammatica (minori di un certo limite) confrontando le produzioni che possono essere presenti in più array.



    Ad esempio, la grammatica ha come simbolo iniziale S e con produzione AB.
    Mentre A ha tre produzioni: a | aa | aaa
    così come B: b | bb | bbb.

    Avendo limite 4, posso generare le seguenti stringhe:
    ab, abb, aab.

    Partendo dal simbolo iniziale (che mi inserisce nel lemma solo i simboli terminali, ossia le lettere minuscole) ho provato ad implementare un metodo ricorsivo (purtroppo i due for annidati non bastano) ma non riesco a creare le stringhe successive a quelle che cominciano per a (in pratica non ricicla sul primo array per un problema di return, ma se vado a modificarlo mi sballa tutto completamente).
    In questo caso, genero solamente ab e abb ma non aab.

    In caso posso mandarvi una copia del codice per MP.

    Grazie a chi vorrà aiutarmi.

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    51
    Se non ho capito male dovrebbe andar bene questo codice

    int max = 4;

    String[] A = {"a", "aa", "aaa"};
    String[] B = {"b", "bb", "bbb"};

    String str;
    for(int i = 0; i < A.length; i++) {
    for(int j = 0; j < B.length; j++)
    if( (str = A[i] + B[j]).length() <= max)
    System.out.println(str + " ");
    }
    Si può renderlo più generale, nel caso fammi sapere

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    18
    Grazie per la risposta,
    ma purtroppo quello non bastava per risolvere il mio problema, perché quello era solo un esempio di grammatica: in realtà, il simbolo iniziale poteva aver molte più produzioni così come gli altri simboli non terminali.
    Fortunatamente ho portato a termine il metodo, non senza tirarci dietro mille accidenti -.-

    Ancora grazie per la disponibilità

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.