eugenebo: (Default)
[personal profile] eugenebo
ЖОПА*ЖОПА = СЧАСТЬЕ

Я нашёл, как заменить буквы десятичными цифрами так, чтобы это выражение стало верным равенством :))

уникальное равенство

Date: 2010-11-15 06:47 pm (UTC)
From: [identity profile] falcao.livejournal.com
1653*1653 = 2732409

Вроде бы одно решение всего!

Re: уникальное равенство

Date: 2010-11-15 08:31 pm (UTC)
From: [identity profile] eugenebo.livejournal.com
Совершенно верно. Одно. Я проверил тупым перебором.

Любопытно, а как Вы искали решение?

Maple

Date: 2010-11-15 08:34 pm (UTC)
From: [identity profile] falcao.livejournal.com
Я когда увидел Ваш пост, то сразу же написал коротенькую программу в Maple. Мне было интересно знать, сколько там решений. Если бы оказалось, что много, то было бы не столь удачно.

А "честными" способами я даже не пытался решать, хотя в принципе можно было бы попробовать.

Кстати, я подумал над тем, как можно было бы "окультурить" задание, чтобы было "прилично" предложить задачу, например, на олимпиаде :)

Re: Maple

Date: 2010-11-15 08:53 pm (UTC)
From: [identity profile] eugenebo.livejournal.com
Ну, существует приличная задача этого ряда: РЕШИ+ЕСЛИ=СИЛЕН. Три решения. К сожалению, уже давно известная.

Мои (довольно бессистемные) поиски других подобных комбинаций обнаружили, что они относительно редки, но не в силу математических ограничений, а просто потому что трудно придумать "красивую" фразу из трёх слов нужных длин, использующих при этом не слишком много букв.

Когда они всё же встречаются, то чаще имеют десятки решений.

Так что вопрос в какой-то степени остаётся открытым :)

Date: 2010-11-15 10:36 pm (UTC)
From: [identity profile] vtolkov.livejournal.com
#include
[Error: Irreparable invalid markup ('<stdio.h>') in entry. Owner must fix manually. Raw contents below.]

#include <stdio.h>

#define F(v) for(int v=0;v<=9;v++)

int main(){
printf("vopa * vopa = scastxe\n");

F(v){ if(v==0) continue;
F(o){ if(o==v) continue;
F(p){ if(p==o || p==v) continue;
F(a){ if(a==p || a==o || a==v) continue;
F(s){ if(s==a || s==p || s==o || s==v) continue;
F(c){ if(c==s || c==a || c==p || c==o || c==v) continue;
F(t){ if(t==c || t==s || t==a || t==p || t==o || t==v) continue;
F(x){ if(x==t || x==c || x==s || x==a || x==p || x==o || x==v) continue;
F(e){ if(e==x || e==t || e==c || e==s || e==a || e==p || e==o || e==v) continue;
int X=(v*1000+o*100+p*10+a);
int Y=(s*1000000+c*100000+a*10000+s*1000+t*100+x*10+e);

if(X*X==Y) printf("%d%d%d%d * %d%d%d%d = %d%d%d%d%d%d%d\n", v,o,p,a, v,o,p,a, s,c,a,s,t,x,e);

}}}}}}}}}};

Re: уникальное равенство

Date: 2010-11-16 05:45 am (UTC)
From: (Anonymous)
Попытки решить в уме так или иначе упирались в перебор, так что накидал програмку :)

вариации на тему

Date: 2010-11-16 03:04 pm (UTC)
From: [identity profile] falcao.livejournal.com
Так это понятно, что "числовых ребусов" очень много! Я вот не так давно давал на олимпиаде довольно простенький ребус ОДИН+ОДИН=МНОГО, тоже с единственным решением.

Здесь как раз дело в том, что если нечто сочинить "наобум", то решений будет, как правило, много.

Вот, скажем, я слегка модифицировал свою программу и посмотрел, сколько будет 4-значных чисел, которые при возведении в квадрат дают 7-значное число, и при этом все 10 цифр встречаются в ребусе (в Вашем примере их было 9). Оказалось, что таких чисел всего два.

1807*1807 = 3265249

2396*2396 = 5740816

Они относятся к разному типу, то есть совпадающие цифры там в обоих случаях разные. А это значит, что для каждого из равенств имеется своя "озвучка", дающая ровно одно решение. Более интересным мне кажется второй случай, так как там сразу ясно, какая цифра повторяется (в том смысле, что самая последняя), а всё остальное присутствует ровно по разу. Было бы интересно придумать для этих задач хорошую "буквенную" интерпретацию.

бакинские комиссары :)

Date: 2010-11-16 03:24 pm (UTC)
From: [identity profile] falcao.livejournal.com
Ещё сейчас "нарыл" нечто интересное. Я стал возводить в квадрат 4-значные числа, чтобы результат оказался 8-значным, и все цифры при этом были "поюзаны". Таких чисел оказалось уже 26, то есть много, но я обратил внимание, что ровно два из них оканчиваются на ноль. Поэтому возможна стала такая задача (с двумя решениями): берём 3-значное число, возводим в квадрат, получаем 6-значное. И надо сделать так, чтобы при этом все цифры кроме нуля были использованы (по разу). Решения там вот какие:

854*854 = 729316

567*567 = 321489

Второй пример особенно красив: там не только цифры 3-значного числа идут подряд, но и у 6-значного числа это "почти" так -- всего лишь первые три цифры поставлены в обратном порядке!

Ещё вот какой случай кажется мне интересным:

3257*3257 = 10608049

Тут одна и та же цифра встречается трижды (и при этом она равна нулю), в то время как обычно там есть по два повтора каких-то разных двух цифр.
Page generated Mar. 21st, 2026 02:17 am
Powered by Dreamwidth Studios