Maths pures, physique, logique (braingames.ru) : jeux cérébraux non liés au commerce - page 213

 

Un problème pour les programmeurs (le poids du problème est de 4) :

Dans un texte très long, un méga-cerveau doit remplacer toutes les lettres "A" par "B" et toutes les lettres "B" par "A". L'éditeur de texte permet de remplacer un ensemble arbitraire de caractères par un autre dans l'ensemble du texte. Par exemple, en remplaçant "AA"->"BSAA", la chaîne "AAAAAL" deviendra "BSAABSAAL". Comment accomplit-il cette tâche ?

FAQ (extrait du site web) :

Вы не знаете алфавита текстового редактора. Единственное, что вы знаете, это то, что он содержит символы "А" и "Б".

(Explication de Mathemat : dans le premier champ (QUOI remplacer) et dans le second (QUOI remplacer) on ne peut utiliser que les caractères A et B et rien d'autre, pas même les espaces : l'alphabet du texte et de l'éditeur de texte nous est inconnu. Je ne comprends toujours pas pourquoi cette précision essentielle est absente du texte du problème lui-même, mais hélas, elle l'est).

La condition ne le dit pas explicitement, mais je suppose que tous les autres caractères, sauf A et B, doivent rester inchangés. Est-ce correct ?

Oui.

Que signifie "texte très long" ?

1. Vous ne pouvez pas faire toutes les substitutions manuellement.
2. toute séquence donnée de caractères peut y figurer.
3. le mégabrain ne peut pas utiliser des séquences dont la longueur est comparable à celle du texte pour la substitution.

Y a-t-il un caractère manquant dans le texte dans l'"arsenal" de l'éditeur de texte ?

Non.

Est-il possible d'effectuer des modifications multiples tout au long du texte ?

Oui.

Certaines séquences peuvent-elles être sautées ? Par exemple, en remplaçant "AA"->"BSAA", la chaîne "AAAAAL" devient "BSAAAL" (c'est-à-dire que la deuxième séquence a été sautée).

Non.

Les expressions régulières (ou leurs équivalents) peuvent-elles être utilisées lors du remplacement ?

Non.

La solution du problème m'a choqué par son caractère inattendu (bien que d'autres solutions soient tout à fait possibles). J'ai commencé à le résoudre il y a quelques années, après quoi j'ai disparu de Mind Games pendant un an et demi. Il y a quelques jours, j'ai réexaminé le problème et, il y a environ 24 heures, j'ai envoyé la solution à un modérateur. Je n'ai pas encore reçu de réponse, mais je suis sûr à 100 % que c'est correct. L'algorithme est testé sur un jeu de caractères de test, aucune erreur n'a été trouvée.

Задачи, загадки, логические игры [Игры разума] икф
  • www.braingames.ru
Мегамозгу в очень длинном тексте требуется заменить все буквы «А» на буквы «Б», а все буквы «Б» - на буквы «А». Текстовый редактор позволяет заменить во всём тексте один произвольный набор символов на другой. Например, в результате замены «АА»->«БСАА» строка «АААААЛ» перейдёт в строку «БСААБСАААЛ». Как ему выполнить задачу?
 
Mathemat:

Un problème pour les programmeurs (le poids du problème est de 4) :

Dans un texte très long, un méga-cerveau doit remplacer toutes les lettres "A" par "B" et toutes les lettres "B" par "A". L'éditeur de texte permet de remplacer un ensemble arbitraire de caractères par un autre dans l'ensemble du texte. Par exemple, en remplaçant "AA"->"BSAA", la chaîne "AAAAAL" deviendra "BSAABSAAL". Comment peut-il accomplir cette tâche ?

FAQ (extrait du site web) :

La solution au problème m'a choqué par son caractère inattendu (même si je suis tout à fait ouvert à d'autres solutions). J'ai commencé à le résoudre il y a quelques années, après quoi j'ai disparu des Mind Games pendant un an et demi. Il y a quelques jours, j'ai réexaminé le problème et, il y a environ 24 heures, j'ai envoyé la solution à un modérateur. Je n'ai pas encore reçu de réponse, mais je suis sûr à 100 % que c'est correct. L'algorithme est testé sur un jeu de caractères de test, aucune erreur n'a été trouvée.

On ne peut pas faire A->A, B->B, AA->B, B->A ?
 
Avals:
On ne peut pas faire A->A, B->B, AA->B, B->A ?


Tu peux, mais tu ne peux pas.

Par exemple, voici le texte "AAAAAAAAAAAAAAAABBBBBBB", ce qui donne : "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"

 
Mathemat:

Un problème pour les programmeurs (le poids du problème est de 4) :

Dans un texte très long, un méga-cerveau doit remplacer toutes les lettres "A" par "B" et toutes les lettres "B" par "A". L'éditeur de texte permet de remplacer un ensemble arbitraire de caractères par un autre dans l'ensemble du texte. Par exemple, en remplaçant "AA"->"BSAA", la chaîne "AAAAAL" deviendra "BSAABSAAL". Comment cela résout-il le problème ?

FAQ (extrait du site web) :

La solution au problème m'a choqué par son caractère inattendu (même si je suis tout à fait ouvert à d'autres solutions). J'ai commencé à le résoudre il y a quelques années, après quoi j'ai disparu de Mind Games pendant un an et demi. Il y a quelques jours, j'ai réexaminé le problème et, il y a environ 24 heures, j'ai envoyé la solution à un modérateur. Je n'ai pas encore reçu de réponse, mais je suis sûr à 100 % que c'est correct. L'algorithme est testé sur un jeu de caractères de test, aucune erreur n'a été trouvée.

Il est résolu en 4 substitutions :

A -> AA

B -> BAB

AA -> B

BAB -> A

 
Contender:

Résolu en 4 substitutions :

A -> AA

B -> BAB

AA -> B

BAB -> A

Je n'ai pas vérifié, mais cette solution est donnée dans les commentaires pour ceux qui ont résolu. Voici ma solution :

A -> AB
B -> AB
AB -> B
AB -> A

Note : les deux premières substitutions (plus précisément, leurs parties droites) sont formellement identiques.

Quelqu'un peut-il le faire en moins de 4 mouvements ?

-----------------------------------------------------------------------------

Et au fait, qu'en est-il de ce problème ?

Задачи, загадки, логические игры [Игры разума] икф
  • www.braingames.ru
Перед вами на столе два тонкостенных непрозрачных сосуда кубической формы (без верхней грани) емкостью 4.096 и 8 литров. Как, имея неограниченный запас воды, быстро отмерить ровно 5 литров?
 
Mathemat:

Devant vous, sur la table, se trouvent deux récipients cubiques opaques à paroi mince (sans bord supérieur) d'une capacité de 4,096 et 8 litres. Avec une réserve d'eau illimitée, comment pouvez-vous mesurer rapidement 5 litres exactement ?

La tâche est ici. Le poids du problème est de 5.

FAQ :

- les parois sont très fines, leur volume est négligeable.

- 4,096, c'est quatre litres entiers et quatre-vingt-seize millièmes, exactement. 5 litres exactement, c'est 5 exactement, pas, disons, 5,002 litres.

- L'opacité signifie que vous ne pouvez pas, par exemple, mettre un petit cube dans un grand cube et verser de l'eau dans le grand cube jusqu'aux bords du petit cube. En raison de l'opacité, il est impossible de le faire avec suffisamment de précision.

- rapide est vraiment rapide, très rapide. La décision en dix étapes ne sera pas prise. C'est trop long.

C'est une question délicate. Je l'ai résolue en trois étapes.

1) Mettez un petit cube dans un grand cube, et remplissez le grand cube jusqu'aux bords. Inclinez-le maintenant de manière à ce que la surface de l'eau touche le bord du petit cube. (si vous avez accidentellement renversé trop d'eau - donnez-en un peu plus, c'est beaucoup).


Maintenant, nous avons versé exactement un litre d'eau. (La longueur du segment AB=5 cm, il est facile de la calculer à partir de la taille des côtés des cubes (20cm et 16cm respectivement).

Retirez délicatement le petit cube, en laissant toute l'eau (7 litres) dans le grand cube.

Inclinez maintenant le grand cube jusqu'à ce que l'eau touche le bord "diagonal" (opposé au bord par lequel l'eau est versée), et versez l'eau dans le petit cube.

Le grand cube contiendra exactement la moitié de son volume (4 litres) ; le petit cube contiendra 3 litres (= 7 litres - 4 litres).

Remplissez le gros cube jusqu'au bord ou un peu moins. Placez délicatement un petit cube contenant 3 litres d'eau. Son volume est supérieur à 3 litres, il ne coulera donc pas complètement, mais juste assez pour déplacer 3 litres d'eau du gros cube. Retirez maintenant le petit cube. Le gros cube contient exactement 5 litres (8L - 3L), ce qui était nécessaire.

 
Mathemat:

Je n'ai pas vérifié, mais une telle solution est donnée dans les commentaires pour ceux qui ont décidé. Voici ma solution :

Note : les deux premières substitutions sont formellement identiques.

Quelqu'un peut-il le faire en moins de 4 mouvements ?

Dans les trois substitutions globales, la solution n'est possible que s'il existe un caractère supplémentaire présent dans l'alphabet autorisé, mais garanti absent dans le texte, ce qui, par la condition du problème, n'est pas le cas.

Dans les conditions données, quatre coups sont minimaux, ce qui peut être prouvé (mais de manière fastidieuse et verbeuse). :)

 
MetaDriver:

C'est une question délicate, je l'ai fait en trois étapes.

1) Placez le petit cube dans le grand cube, et remplissez le grand cube jusqu'au bord. Inclinez-le maintenant de manière à ce que la surface de l'eau touche le bord du petit cube. (si vous avez accidentellement renversé trop d'eau - donnez-en un peu plus, c'est beaucoup).


Maintenant, nous avons versé exactement un litre d'eau. (La longueur du segment AB=5 cm, il est facile de la calculer à partir de la taille des côtés des cubes (20cm et 16cm respectivement).

Retirez délicatement le petit cube, en laissant toute l'eau (7 litres) dans le grand cube.

Inclinez maintenant le grand cube jusqu'à ce que l'eau touche le bord "diagonal" (opposé au bord par lequel l'eau est versée), et versez l'eau dans le petit cube.

Le grand cube contiendra exactement la moitié de son volume (4 litres) ; le petit cube contiendra 3 litres (= 7L-4L).

Versez maintenant le grand cube jusqu'au bord ou un peu moins. Mettez délicatement le petit cube avec trois litres d'eau dedans. Son volume est supérieur à 3 litres, il ne coulera donc pas complètement, mais juste assez pour déplacer 3 litres d'eau du grand cube. Retirez maintenant le petit cube. Le grand cube a exactement cinq litres (8L - 3L), ce qui était nécessaire.

donc dans la première étape, 2 litres sont versés)

0.05*0.2*0.2=0.002 м3

 
sanyooooook:

donc dans la première étape, 2 litres sont versés)

0.05*0.2*0.2=0.002 м3

vous mentez encore ;)

l'aire du triangle ABC = (0,05*0,2) / 2

total : ((0,05*0,2) / 2) * 0,2 = 0,001 m^3

 
MetaDriver:

Un problème délicat, que j'ai résolu en trois étapes.

1) Mettez un petit cube dans un grand, et remplissez le grand cube jusqu'aux bords. Inclinez-le maintenant de manière à ce que la surface de l'eau touche le bord du petit cube. (si vous avez accidentellement renversé trop d'eau, faites le plein, c'est beaucoup).

Original, mais il semble y avoir une contradiction dans l'opacité. Et tenir le gros cube incliné sans aucun support n'est pas si facile, il faut deux personnes.

Maintenant, nous inclinons le gros cube jusqu'à ce que le bord de l'eau touche le bord "diagonal" (opposé au bord par lequel l'eau se déverse), et nous versons l'eau dans le petit cube.

Et il y a des conneries similaires ici, surtout avec le fait de verser de l'eau dans le petit. Il est difficile de verser l'eau de la grande dans la petite à travers le bord de la grande sans dispositifs spéciaux.

En bref, il existe une solution plus courte et plus simple :)

MD : Pour trois substitutions globales, la solution n'est possible que s'il existe un caractère supplémentaire présent dans l'alphabet valide, mais garanti absent dans le texte, ce qui, selon les termes du problème, n'est pas le cas.

Dans ces conditions, quatre coups sont minimaux, ce qui peut être prouvé (mais de manière fastidieuse et verbeuse). :)

Les modérateurs affirment que personne aux Mind Games n'a encore fourni une solution plus courte que 4 coups. (Je n'ai pas proposé le problème ci-dessous, c'est juste un automate du moteur de notre site).

Задачи, загадки, логические игры [Игры разума] икф
  • www.braingames.ru
У Мегамозга нашли страшную болезнь. Доктор выписал ему всего 4 таблетки двух видов (по две каждого вида), совершенно не отличимых друг от друга, и предупредил, что, если выпить более одной таблетки одного вида — смерть, не выпить таблеток — смерть, выпить за раз меньше нормы — смерть. Таблетки надо принять за два приема: утром — 2 таблетки (по...