Математическая задачка - just for fun

и задачки для интервью.
User avatar
VladStar
Уже с Приветом
Posts: 202
Joined: 03 Feb 2002 10:01
Location: Pskov, Russia | Troy, MI | Reston, VA | Sterling, VA

Математическая задачка - just for fun

Post by VladStar »

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

Т.е., к примеру, исходное число 1xxx2 должно быть ровно вдвое меньше полученного числа 21xxx.

Задачу я, конечно, решил, по ходу получив изрядный фан... :-) Задачка, по словам Ирины Б., задавшей мне ее, была на олимпиаде по математике для пятиклассников. Кстати, не думайте, что все так просто, с "пол-пинка" тут числа не подбираются. "А Вам слабО ?" :mrgreen:
Sincerely yours, VladStar.
omnibee
Уже с Приветом
Posts: 120
Joined: 15 Mar 2001 10:01
Location: Belgium

Post by omnibee »

263157894736842105

не знаю можно ли короче. кстати, я именно подбирал числа, начиная с младшей цифры и наращивая их влево...
User avatar
olg2002
Уже с Приветом
Posts: 990
Joined: 27 Mar 2002 10:01
Location: Palo Alto, CA

Post by olg2002 »

Не слабо для пятиклассников!
Поскольку чисел таких много, приведу одно без боязни
испортить удовольствие другим:

157894736842105263157894736842105263
The trouble with the world is that the stupid are cocksure and the intelligent are full of doubt.
- Bertrand Russell
User avatar
olg2002
Уже с Приветом
Posts: 990
Joined: 27 Mar 2002 10:01
Location: Palo Alto, CA

Post by olg2002 »

Привычка сразу решать задачу в общем случае.
Просили ведь одно число найти, а не все.
Отличная задача для олимпиады в 5-м классе!
Самое маленькое число, кстати, 105263157894736842.
The trouble with the world is that the stupid are cocksure and the intelligent are full of doubt.
- Bertrand Russell
User avatar
Belarus
Ник закрыт за хамство.
Posts: 396
Joined: 27 Jun 2001 09:01
Location: Minsk,Belarus --> San Jose, CA

Post by Belarus »

Народ, оглашайте метод решения..
Найти такое число сидя у 64-битного компьютера - не вопрос, а как же ДЕТИ это делают?
"А что Вы думали - в сказку попали ???"
User avatar
VladStar
Уже с Приветом
Posts: 202
Joined: 03 Feb 2002 10:01
Location: Pskov, Russia | Troy, MI | Reston, VA | Sterling, VA

Post by VladStar »

[quote:483c51f0de="olg2002"]Не слабо для пятиклассников!
Поскольку чисел таких много, приведу одно без боязни
испортить удовольствие другим:

157894736842105263157894736842105263[/quote:483c51f0de]

На самом деле, не так уж и много... больше того скажу - некоторых сочетаний просто не существует (т.к. первой цифрой высчитанного числа оказывается "0"). 8) Я развлекся тем, что написал простенький скрипт на perl'е, позволяющий высчитывать числа в зависимости от заданной последней цифры и множителя. Для тех, кто не сможет высчитать самостоятельно, либо просто захочет посмотреть на различные результаты при разных исходных данных - взять его можно здесь: http://vladstar.pp.ru/temp/justforfun.pl.

P.S. Да, специально для Юниксоидов - версия скрипта с сообщениями в koi8 - http://vladstar.pp.ru/temp/justforfun_koi.pl. :mrgreen:
Sincerely yours, VladStar.
User avatar
VladStar
Уже с Приветом
Posts: 202
Joined: 03 Feb 2002 10:01
Location: Pskov, Russia | Troy, MI | Reston, VA | Sterling, VA

Post by VladStar »

[quote:fd1fc7217f="Belarus"]Народ, оглашайте метод решения..
Найти такое число сидя у 64-битного компьютера - не вопрос, а как же ДЕТИ это делают?[/quote:fd1fc7217f]

А самому(самой) подумать над алгоритмом решения задачи ? В этом и состоит фан... :mrgreen:
Sincerely yours, VladStar.
User avatar
olg2002
Уже с Приветом
Posts: 990
Joined: 27 Mar 2002 10:01
Location: Palo Alto, CA

Post by olg2002 »

[quote:6dd42719fc="VladStar"]На самом деле, не так уж и много...[/quote:6dd42719fc]

Вот разница между программистским и математическим подходом!
У меня получилось счетное множество.
The trouble with the world is that the stupid are cocksure and the intelligent are full of doubt.
- Bertrand Russell
dancing_in_the_rain
Уже с Приветом
Posts: 254
Joined: 16 Nov 2001 10:01

Post by dancing_in_the_rain »

[quote:2ede62fba2="Belarus"]Народ, оглашайте метод решения..
Найти такое число сидя у 64-битного компьютера - не вопрос, а как же ДЕТИ это делают?[/quote:2ede62fba2]
Ну, для начала, берут любое однозначное число и умножают его на два :wink:
helg
Уже с Приветом
Posts: 4827
Joined: 15 May 2001 09:01

Re: Математическая задачка - just for fun

Post by helg »

Запишем число до удвоения в виде

Ab

где b - младшая цифра, а A - все остальные.

Если число Ab - n+1-разрядное, то bA - это 10**n*b+A. По условию bA=2*Ab, то есть:

10**n * b + A = 2* (10*A + b)

или

(10**n -1 )-2)*b = 19*A (*)

Любое решение этого уравнения, где b - цифра, а А - число, даст нам ответ.

Поскольку 19 - простое число, а b<10, значит 10**n - 2 делится на 19. Стало быть, соответствующая степень десятки должна давать остаток 2 при делении на 19. Если к-я степень десятки дает R в остатке, то (K+1)-я - (10*R mod 19). Из этого находим подходящую степень:

В нижеприведенной таблице первая колонка - степень 10, вторая - остаток от деления ее на 19

0 1
1 10
2 5
3 12
4 6
5 3
6 11
7 15
8 17
9 18
10 9
11 14
12 7
13 13
14 16
15 8
16 4
17 2
18 1
19 10
...

Видно, что дальще все повторяется, и условиям задачи удовлетворяет
n=18*k-1, кде k-натуральное число.

Подставляя это в формулы выше, получим, что общая формула, описывающая все числа, удваивающиеся при перемещении последней цифры на первой место:

(10**(18*k-1)-2)*b*10/19 +b,

где к - натуральное, а b - ненулевая цифра.

Наименьшее такое число - когда k=1, b=2:
(10**17-2)*2*10/19+2 = 105263157894736842
поскольку при b=1 первой цифрой числа оказывается ноль.

В последнем рассуждении использовался калькулятор.

Интересно, что ответ - это прокрученый период дроби 1/19, да и все остальные ответы - тоже. Поняв это, можно привести более красивое решение.

Олег
dancing_in_the_rain
Уже с Приветом
Posts: 254
Joined: 16 Nov 2001 10:01

Post by dancing_in_the_rain »

Oleg,
this is beautiful, but I doubt that this is how you are supposed to do it in the 5th grade!
User avatar
Chapaev
Новичок
Posts: 96
Joined: 19 Jun 2001 09:01
Location: Canada

Re: Математическая задачка - just for fun

Post by Chapaev »

[quote:59204c83e1="helg"]...Наименьшее такое число - когда k=1, b=2:
(10**17-2)*2*10/19+2 = 105263157894736842
Олег[/quote:59204c83e1]
В условии не сказано о системе счисления.
Наименьшее число = 1012 в трехричной системе счисления, что равно 32 в десятиричной.
:umnik1: :mrgreen:
User avatar
Chapaev
Новичок
Posts: 96
Joined: 19 Jun 2001 09:01
Location: Canada

Re: Математическая задачка - just for fun

Post by Chapaev »

Ого, тут есть еще меньшее числою
13 в пятеричной = 8 в десятиричной
Drom
Уже с Приветом
Posts: 242
Joined: 03 Jan 2000 10:01
Location: TX > MA/NH > NJ/NYC

Re: Математическая задачка - just for fun

Post by Drom »

:(

Return to “Головоломки”