Question

J'ai une question d'un test dans une classe langages de programmation qui me prêter à confusion.

Donner une grammaire hors-contexte pour générer la langue suivante

L = {a i b j c k | 0 <= i <= j <= i + k}

Je suis tout à fait familier avec cette notation. Je ne peux pas sembler trouver quoi que ce soit dans le livre ou mes notes à ce sujet, et je ne sais pas comment interroger Google pour la réponse.

Si vous le reconnaissez, qu'est-ce qu'il a appelé et qu'est-ce que cela signifie?

Était-ce utile?

La solution

a ^ i signifie juste une fois je répète. Donc, a ^ 2 = aa, b ^ 10 = bbbbbbbbbb, etc.

Autres conseils

Souvent,

  • {} signifie "l'ensemble des"
  • des moyens de | "tels que"

Je ne sais pas ce que a, b, c sont. i et j sont des nombres non négatifs, étant supérieur ou égal à zéro. Classiquement, ces lettres sont réservés pour les entiers. Le fait que

i <= i + k

signifie que k est non négatif.

Si a, b et c sont réels, alors il me semble que L est juste l'ensemble des nombres réels. Cependant, il semble comme une façon très artificielle et complexe de le spécifier. Ce serait quelque chose comme le complot du Dr. Evil tuer Austin Powers.

Vous avez donc « l'ensemble de la puissance i fois b à la puissance du temps j c à la puissance j tel que i, j et k sont positifs, et j est supérieur ou égal à i ... » et ainsi de suite.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top