Reine Mathematik, Physik, Logik (braingames.ru): nicht handelsbezogene Denkspiele - Seite 213

 

Ein Problem für Programmierer (Gewicht des Problems ist 4):

Ein Megahirn muss in einem sehr langen Text alle Buchstaben "A" durch "B" und alle Buchstaben "B" durch "A" ersetzen. Der Texteditor erlaubt es, eine beliebige Menge von Zeichen im gesamten Text durch eine andere zu ersetzen. Ersetzt man beispielsweise "AA"->"BSAA", so wird aus der Zeichenfolge "AAAAAL" "BSAABSAAL". Wie erledigt er die Aufgabe?

FAQ (von der Website):

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

(Erläuterung von Mathemat: im ersten Feld (WAS zu ersetzen ist) und im zweiten (WAS zu ersetzen ist) können Sie nur die Zeichen A und B verwenden und nichts anderes, nicht einmal Leerzeichen: das Alphabet des Textes und des Texteditors ist uns unbekannt. Es ist mir immer noch unklar, warum diese wichtige Klarstellung im Text des Problems selbst fehlt, aber leider ist es so).

Die Bedingung besagt dies nicht ausdrücklich, aber ich gehe davon aus, dass alle anderen Zeichen außer A und B unverändert bleiben müssen. Ist dies richtig?

Ja.

Was bedeutet "sehr langer Text"?

1. Sie können nicht alle Ersetzungen manuell vornehmen.
2) Jede beliebige Zeichenfolge kann darin vorkommen.
3. Das Megahirn kann keine Sequenzen zur Ersetzung verwenden, deren Länge mit der Länge des Textes vergleichbar ist.

Fehlt ein Zeichen im Text im "Arsenal" des Texteditors?

Nein.

Ist es möglich, mehrere Änderungen im Text vorzunehmen?

Ja.

Können einige Sequenzen übersprungen werden? Ersetzt man beispielsweise "AA"->"BSAA", so wird aus der Zeichenkette "AAAAAL" "BSAAAL" (d. h. die zweite Sequenz wurde übersprungen).

Nein.

Können reguläre Ausdrücke (oder ihre Gegenstücke) beim Ersetzen verwendet werden?

Nein.

Die Lösung des Problems hat mich durch ihre Unerwartetheit schockiert (obwohl andere Lösungen durchaus möglich sind). Ich habe vor ein paar Jahren angefangen, es zu lösen, und bin dann für anderthalb Jahre von Mind Games verschwunden. Vor ein paar Tagen habe ich es mir noch einmal angesehen und vor etwa 24 Stunden die Lösung an einen Moderator geschickt. Ich habe noch keine Antwort erhalten, aber ich bin mir zu 100 Prozent sicher, dass sie korrekt ist. Der Algorithmus wird mit einem Testzeichensatz getestet, wobei keine Fehler gefunden werden.

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

Ein Problem für Programmierer (Gewicht des Problems ist 4):

Ein Megahirn muss in einem sehr langen Text alle Buchstaben "A" durch "B" und alle Buchstaben "B" durch "A" ersetzen. Der Texteditor erlaubt es, eine beliebige Menge von Zeichen im gesamten Text durch eine andere zu ersetzen. Ersetzt man beispielsweise "AA"->"BSAA", so wird aus der Zeichenfolge "AAAAAL" "BSAABSAAL". Wie kann er die Aufgabe erfüllen?

FAQ (von der Website):

Die Lösung des Problems hat mich mit ihrer Unerwartetheit schockiert (obwohl ich durchaus offen für andere Lösungen bin). Ich habe vor ein paar Jahren angefangen, es zu lösen, und bin dann für anderthalb Jahre von den Mind Games verschwunden. Vor ein paar Tagen habe ich es mir noch einmal angesehen und vor etwa 24 Stunden die Lösung an einen Moderator geschickt. Ich habe noch keine Antwort erhalten, aber ich bin mir zu 100 Prozent sicher, dass sie korrekt ist. Der Algorithmus wird mit einem Testzeichensatz getestet, wobei keine Fehler gefunden werden.

Kann nicht A->A, B->B, AA->B, B->A?
 
Avals:
Kann nicht A->A, B->B, AA->B, B->A?


Man kann, aber man kann nicht.

Hier ist zum Beispiel der Text "AAAAAAAAAAAAAAAABBBBBBBBB", der Folgendes ergibt: "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"

 
Mathemat:

Ein Problem für Programmierer (Gewicht des Problems ist 4):

Ein Megahirn muss in einem sehr langen Text alle Buchstaben "A" durch "B" und alle Buchstaben "B" durch "A" ersetzen. Der Texteditor erlaubt es, eine beliebige Menge von Zeichen im gesamten Text durch eine andere zu ersetzen. Ersetzt man beispielsweise "AA"->"BSAA", so wird aus der Zeichenfolge "AAAAAL" "BSAABSAAL". Wie wird das Problem gelöst?

FAQ (von der Website):

Die Lösung des Problems hat mich mit ihrer Unerwartetheit schockiert (obwohl ich durchaus offen für andere Lösungen bin). Ich habe vor ein paar Jahren angefangen, es zu lösen, und bin dann für eineinhalb Jahre von Mind Games verschwunden. Vor ein paar Tagen habe ich es mir noch einmal angesehen und vor etwa 24 Stunden die Lösung an einen Moderator geschickt. Ich habe noch keine Antwort erhalten, aber ich bin mir zu 100 Prozent sicher, dass sie korrekt ist. Der Algorithmus wird mit einem Testzeichensatz getestet, wobei keine Fehler gefunden werden.

Sie wird in 4 Substitutionen gelöst:

A -> AA

B -> BAB

AA -> B

BAB -> A

 
Contender:

Gelöst in 4 Substitutionen:

A -> AA

B -> BAB

AA -> B

BAB -> A

Ich habe nicht nachgesehen, aber die Lösung steht in den Kommentaren für diejenigen, die die Aufgabe gelöst haben. Hier ist meine Lösung:

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

Hinweis: Die ersten beiden Substitutionen (genauer gesagt, ihre rechten Teile) sind formal identisch.

Kann das jemand in weniger als 4 Zügen schaffen?

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

Und übrigens, was ist mit diesem Problem?

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

Vor Ihnen auf dem Tisch stehen zwei dünnwandige undurchsichtige würfelförmige Gefäße (ohne oberen Rand) mit einem Fassungsvermögen von 4,096 und 8 Litern. Wie können Sie bei einem unbegrenzten Wasservorrat schnell genau 5 Liter abmessen?

Die Aufgabe ist da. Das Gewicht des Problems beträgt 5.

FAQ:

- die Wände sind sehr dünn, ihr Volumen ist vernachlässigbar.

- 4,096 ist genau vier ganze sechsundneunzigtausendstel Liter. Genau 5 Liter sind genau 5, nicht etwa 5,002 Liter.

- Undurchsichtigkeit bedeutet, dass man z. B. nicht einen kleineren Würfel in einen größeren stecken und Wasser in den größeren Würfel bis zu den Kanten des kleineren Würfels gießen kann. Aufgrund der Undurchsichtigkeit kann dies nicht genau genug erfolgen.

- schnell ist wirklich schnell, ziemlich schnell. Die zehnstufige Entscheidung wird nicht getroffen. Er ist zu lang.

Das ist eine knifflige Aufgabe. Ich habe sie in drei Schritten gelöst.

1) Setzen Sie einen kleinen Würfel in einen großen Würfel und füllen Sie den großen Würfel bis zum Rand. Kippe ihn nun so, dass die Wasseroberfläche den Rand des kleinen Würfels berührt. (wenn Sie versehentlich zu viel Wasser verschüttet haben - geben Sie etwas mehr, es ist viel).


Jetzt haben wir genau einen Liter Wasser ausgegossen. (Die Länge des Segments AB=5 cm lässt sich leicht aus den Seitenlängen der Würfel berechnen (20cm bzw. 16cm).

Nehmen Sie den kleinen Würfel vorsichtig heraus, so dass sich das gesamte Wasser (7 Liter) im großen Würfel befindet.

Kippen Sie nun den großen Würfel, bis das Wasser die "schräge" Kante berührt (gegenüber der Kante, durch die das Wasser ausgegossen wird), und gießen Sie das Wasser in den kleinen Würfel.

Der große Würfel fasst genau die Hälfte seines Volumens (4 Liter); der kleine Würfel fasst 3 Liter (= 7 Liter - 4 Liter).

Fülle nun den großen Würfel bis zum Rand oder etwas weniger. Lege vorsichtig den kleinen Würfel mit drei Litern Wasser hinein. Sein Volumen ist größer als drei Liter, so dass er nicht ganz untergeht, sondern nur gerade so viel, dass er drei Liter Wasser aus dem großen Würfel verdrängt. Nimm nun den kleinen Würfel heraus. Der große Würfel hat genau fünf Liter (8L - 3L), die benötigt wurden.

 
Mathemat:

Ich habe nicht nachgesehen, aber eine solche Lösung ist in den Kommentaren für diejenigen, die sich entschieden haben, angegeben. Hier ist meine Lösung:

Hinweis: Die ersten beiden Ersetzungen sind formal identisch.

Kann das jemand in weniger als 4 Zügen schaffen?

Bei drei globalen Substitutionen ist die Lösung nur möglich, wenn es ein zusätzliches Zeichen gibt, das im zulässigen Alphabet vorhanden ist, aber im Text garantiert fehlt, was durch die Bedingung des Problems nicht der Fall ist.

Unter den gegebenen Bedingungen sind vier Züge minimal, was (allerdings mühsam und umständlich) bewiesen werden kann. :)

 
MetaDriver:

Das ist eine knifflige Sache, ich habe es in drei Schritten gemacht.

1) Legen Sie den kleinen Würfel in den großen Würfel und füllen Sie den großen Würfel bis zum Rand. Kippe ihn nun so, dass die Wasseroberfläche den Rand des kleinen Würfels berührt. (wenn Sie versehentlich zu viel Wasser verschüttet haben - geben Sie etwas mehr, es ist viel).


Jetzt haben wir genau einen Liter Wasser ausgegossen. (Die Länge des Segments AB=5 cm lässt sich leicht aus den Seitenlängen der Würfel berechnen (20cm bzw. 16cm).

Nehmen Sie den kleinen Würfel vorsichtig heraus, so dass sich das gesamte Wasser (7 Liter) im großen Würfel befindet.

Kippen Sie nun den großen Würfel, bis das Wasser die "schräge" Kante berührt (gegenüber der Kante, durch die das Wasser ausgegossen wird), und gießen Sie das Wasser in den kleinen Würfel.

Der große Würfel fasst genau die Hälfte seines Volumens (4 Liter); der kleine Würfel fasst 3 Liter (= 7L-4L).

Gieße nun den großen Würfel bis zum Rand oder etwas weniger. Lege vorsichtig den kleinen Würfel mit drei Litern Wasser hinein. Sein Volumen ist größer als drei Liter, so dass er nicht ganz untergeht, sondern nur gerade so viel, dass er drei Liter Wasser aus dem großen Würfel verdrängt. Nimm nun den kleinen Würfel heraus. Der große Würfel hat genau fünf Liter (8L - 3L), die benötigt wurden.

im ersten Schritt werden also 2 Liter eingefüllt)

0.05*0.2*0.2=0.002 м3

 
sanyooooook:

im ersten Schritt werden also 2 Liter abgefüllt)

0.05*0.2*0.2=0.002 м3

du lügst schon wieder ;)

die Fläche des Dreiecks ABC = (0,05*0,2) / 2

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

 
MetaDriver:

Ein kniffliges Problem, das ich in drei Schritten gelöst habe.

1) Lege einen kleinen Würfel in einen großen Würfel und fülle den großen Würfel bis zum Rand. Kippe ihn nun so, dass die Wasseroberfläche den Rand des kleinen Würfels berührt. (wenn Sie versehentlich zu viel Wasser verschüttet haben, füllen Sie es nach, es ist viel).

Original, aber es scheint einen Widerspruch in der Opazität zu geben. Und es ist gar nicht so einfach, den großen Würfel ohne Stütze gekippt zu halten, man braucht zwei Personen.

Nun kippen wir den großen Würfel, bis die Wasserkante die "diagonale" Kante berührt (gegenüber der Kante, durch die das Wasser herausfließt), und gießen das Wasser in den kleinen Würfel.

Und hier gibt es einen ähnlichen Blödsinn, vor allem beim Einfüllen von Wasser in den Kleinen. Das Gießen von Wasser aus dem großen in den kleinen Behälter über den Rand des großen Behälters ist ohne spezielle Vorrichtungen schwierig.

Kurzum, es gibt eine kürzere und einfachere Lösung :)

MD: Bei drei globalen Ersetzungen ist die Lösung nur dann möglich, wenn es ein zusätzliches Zeichen gibt, das im gültigen Alphabet vorhanden ist, aber garantiert nicht im Text vorkommt, was nach der Aufgabenstellung nicht der Fall ist.

Unter diesen Bedingungen sind vier Anschläge das Minimum, was sich (allerdings mühsam und umständlich) beweisen lässt. :)

Die Moderatoren behaupten, dass noch niemand bei den Mind Games eine Lösung mit weniger als 4 Zügen gefunden hat. (Ich habe das Problem im Folgenden nicht vorgeschlagen, es ist nur ein Automatismus der Engine unserer Website).

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