|
#1 - 30-04-2018 23:25:55
- scarta
- Elite de Prise2Tete
- Enigmes résolues : 49
- Messages : 1960
Expressionns régulières
Hello tout le monde !
Voici un petit problème qui pourrait aussi bien se trouver dans les sections Logique, Mathématiques, et Informatiques (si ça existait ici )
Pour ceux qui ne sauraient pas ce qu'est une expression régulière, je recommande la lecture de wikipedia entre autres.
La question est de trouver quelle est la propriété qui caractérise les chaines qui valident l'expression régulière, pour chaque expression donnée, et bien entendu d'expliquer pourquoi !
Ex: ^[0-9]*[05]$ reconnait les multiples de 5, puisqu'il s'agit d'une série de chiffres quelconque, terminée par 0 ou 5
Quelle sont donc ces chaines ?
Chaine 1: ^(a*)((a*)-\3)=\1$
Chaine 2: ^(xx+)\1+$
...pour commencer...
#2 - 01-05-2018 08:23:05
- enigmatus
- Expert de Prise2Tete
- Enigmes résolues : 0
- Messages : 561
exoressions régulières
Bonjour, 1) (m fois la lettre a) suivi de (n fois la lettre a) - (n fois la lettre a) = ( (m-n) fois la lettre a) m ≥ n ≥ 0 Exemples : aaaaaa-aa=aaaa aaa-aaa= aaa-=aaa -=
2) (suite de 2 ou plus lettres x) suivie de (1 ou plusieurs telles suites) Exemples xxxx xxxxxx
Édité : En résumé, l'expression 2 reconnaît une succession de m*n lettres x (m ≥ 2, n ≥ 2)
Édité (2) : Autrement dit, le nombre de x est supérieur à 1 et non premier
#3 - 01-05-2018 23:47:28
- Ebichu
- Expert de Prise2Tete
- Enigmes résolues : 49
- Messages : 888
expressions réguliètes
Salut scarta,
je ne suis pas sûr de bien comprendre.
Prenons la chaîne 1. Je pense qu'il s'agit des expressions du type (aa...a)((aa...a)-3)=1, avec d'abord n "a", puis m "a", où n et m sont des entiers >=0. Est-ce bien cela ? Si oui, que faut-il faire, résoudre les équations obtenues ?
#4 - 02-05-2018 17:10:24
- scarta
- Elite de Prise2Tete
- Enigmes résolues : 49
- Messages : 1960
xpressions régulières
Bonne réponse d’Enigmatus Ebichu, ce n’est pas 3 mais \3, autrement dit une réutilisation du 3ème « bloc parenthèses » L’idee est alors de décrire les chaînes reconnues. Tu peux donner quelques exemples dans un premier temps, mais tu vas vite trouver la logique générale.
#5 - 03-05-2018 09:37:29
- Ebichu
- Expert de Prise2Tete
- Enigmes résolues : 49
- Messages : 888
expreqsions régulières
OK, je ne connaissais pas cette utilisation des parenthèses.
La première expression détecte les chaînes du type aaaaa-aaa=aa avec n "a" moins m "a", et n>=m>=0 (dans cet exemple, n=5 et m=3). Même la chaîne "-=" est reconnue (c'est le cas n=m=0). Explication : aa(aaa-aaa)=aa.
La deuxième expression détecte les chaînes composées d'un nombre de "x" >=2 et non premier, comme "xxxx", puis "xxxxxx"... : un nombre est reconnu si et seulement s'il s'écrit p*q avec p et q>=2, la parenthèse reconnaît les p "x" et le \1+ permet de reproduire cela q fois.
Énigme originale, sympa
#6 - 03-05-2018 14:15:01
- scarta
- Elite de Prise2Tete
- Enigmes résolues : 49
- Messages : 1960
Expressons régulières
Bonne réponse
Pour la seconde chaine, ce genre de nombre porte un nom
#7 - 03-05-2018 18:25:31
- Ebichu
- Expert de Prise2Tete
- Enigmes résolues : 49
- Messages : 888
exoressions régulières
Oui, mais sinon il y aurait eu deux fois le mot "composé" dans ma phrase, ça fait des répétitions, c'est pas joli
#8 - 03-05-2018 22:19:48
- scarta
- Elite de Prise2Tete
- Enigmes résolues : 49
- Messages : 1960
Expessions régulières
2 bonnes réponses donc.
La première chaine décrit effectivement une soustraction, les nombres étant remplacés par des "a". Exemple: aaaaaaa - aaa = aaaa soit 7 - 4 = 3 La raison est que la chaine reconnue est effectivement de la forme [N fois a][P fois a] - [P fois ] = [N fois a], ce qui revient à dire (N+P) - P = N
La seconde indique si un nombre est composé, le nombre N étant remplacé par la chaine contenant N fois x. En effet, il s'agit de trouver toutes les chaines comportant [N fois x] répété P fois, avec N et P > 1. Cela revient à detecter les chaines comportant N*P fois x, par conséquent un nombre composé.
|
|
Prise2Tete
Forum
Statistiques
Liste des membres
Hall of Fame
Contact
|