Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Задачи...  (Прочитано 15746 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Mfcer__
Команда клуба

ru
Offline Offline

« : 07-01-2006 03:27 » 

Никак не могу понять как решаются задачи
Каков алгоритм их решения...

1) На сколько нулей оканчивается число 2^2005 - 2^1997
2) Оцените количество цифр целой части числа e^16092005
3) Дана последовательность 4, 6, 8, 5, 3, 9, 2, 1, 10, 7. За какое наименьшее число действий ее можно упорядочить по возрастанию, еслиз за одно дейстие разрешается поменять местами любые два числа, различающихся на 1?
4) Какое число стоит на 800-м месте в последовательности 1, 1, 2, 1, 1, 2, 3, 2, 1, 1, 2, 3, 4, 3, ...? (Нумерация элементов последовательности начинается с 1.)
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #1 : 07-01-2006 06:43 » 

Вторую задачу надо решать с помошью десятичного логарифма.
10^x=e^16092005
Log(10^x)=Log(e^16092005)
x*Log(10)=16092005*Log(e)
x=16092005*Log(e)
x=6988668,9742595379268211048188506
Округляем до высшего целого значения 6988669. Это и будет количество знаков.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #2 : 07-01-2006 07:07 » 

Четвертая задача, последовательности напоминают пирамидки
Первая пирамидка 1
Вторая пирамидка 1 2 1
Третья пирамидка 1 2 3 2 1
-----
Если заметить, то каждая следуюшая пирамидка занимает на два места больше
Теперь только осталсь подсчитать какой пирамидке принадлежит 800 место и где эта пирамидка начинается
1 + 3 + 5 + 7 + ...
Тут не сложно заметить, что Сумма всех нечетных значений будет равна квадрату номера пирамидки. т.е. если взять корень из 800 то получим какой пирамидке принадлежит данное место. sqr(800) = 28,284271. Нас интересует только целая часть 28. Квадрат 28 будет равен  784. Значит Пирамидка начинается с 785 позиции. Так как исчисление начинается с 1. Не трудно подсчитать что на 800 позиции будет число 16.
« Последнее редактирование: 07-01-2006 07:10 от Finch » Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #3 : 07-01-2006 07:32 » 

Третья задача
00) 4, 6, 8, 5, 3, 9, 2, 1, 10, 7
01) 4, 6, 7, 5, 3, 9, 2, 1, 10, 8
02) 4, 6, 7, 5, 3, 8, 2, 1, 10, 9
03) 4, 6, 7, 5, 2, 8, 3, 1, 10, 9
03) 3, 6, 7, 5, 2, 8, 4, 1, 10, 9
04) 3, 6, 7, 4, 2, 8, 5, 1, 10, 9
05) 3, 5, 7, 4, 2, 8, 6, 1, 10, 9
06) 3, 5, 6, 4, 2, 8, 7, 1, 10, 9
07) 3, 5, 6, 4, 1, 8, 7, 2, 10, 9
08) 2, 5, 6, 4, 1, 8, 7, 3, 10, 9
09) 2, 5, 6, 3, 1, 8, 7, 4, 10, 9
10) 2, 4, 6, 3, 1, 8, 7, 5, 10, 9
11) 2, 4, 5, 3, 1, 8, 7, 6, 10, 9
12) 1, 4, 5, 3, 2, 8, 7, 6, 10, 9
12) 1, 3, 5, 4, 2, 8, 7, 6, 10, 9
13) 1, 2, 5, 4, 3, 8, 7, 6, 10, 9
14) 1, 2, 4, 5, 3, 8, 7, 6, 10, 9
15) 1, 2, 3, 5, 4, 8, 7, 6, 10, 9
16) 1, 2, 3, 4, 5, 8, 7, 6, 10, 9
16) 1, 2, 3, 4, 5, 8, 6, 7, 10, 9
17) 1, 2, 3, 4, 5, 7, 6, 8, 10, 9
18) 1, 2, 3, 4, 5, 6, 7, 8, 10, 9
19) 1, 2, 3, 4, 5, 6, 7, 8,  9, 10

Может быть можно сделать более оптимально.
« Последнее редактирование: 07-01-2006 09:10 от Finch » Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #4 : 07-01-2006 08:14 » 

Первая задача
Двойка в любой степени будет давать только такие окончания числа 2, 4, 8, 6
Причем окончания будут чередоваться в цикле.
2^1997 окончание будет 2
2^2005 окончание тоже будет 2
Теперь расмотрим цикл двух последних чисел 02, 04, 08, 16, 32, 64, 28, 56, 12, 24, 48, 96, 92, 84, 68, 36, 72, 44, 88, 76, 52, 04
т.е. можно заметить, что цикл будет состоять из 20 элементов. Самый первый элемент не будет входить в цикл.
2^1997 окончание 92
2^2005 окончание 32
Значит у разници этих двух чисел будет окончание 60
Ответ 1 нуль в конце.

Поправка
2^1997 окончание 72
Все остальное верно.
« Последнее редактирование: 08-01-2006 16:46 от Finch » Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Mfcer__
Команда клуба

ru
Offline Offline

« Ответ #5 : 07-01-2006 22:41 » 

СПАСИБО!!!

И Последняя:

Сколько нулей будет содержаться в конце числа 2341!
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #6 : 07-01-2006 22:55 » 

Каждый десяток факториал будет давать 2 нуля.
10! = 3628800
20! = 2432902008176640000
Значит число 2341! будет иметь 468 нулей в конце числа
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Rony
Гость
« Ответ #7 : 08-01-2006 12:10 » 

Про 2341!
Finch твое решение не верно. :nottrue:( Например, в 25! имеет 6 нулей, а по твоему алгоритму не более 5)
Привильное решение:
 n! = 1*2*3...*n; В этой последовательности ноль в конец будет давать каждое 5ое число, каждое 25ое(5^2), каждое 125ое(5^3), и т.д.
(2341!) оканчивается на { 468+93+18+3 = 582 } нуля.

Mfcer__ если не секрет откуда  задачки?
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #8 : 08-01-2006 13:13 » 

Признаю, чуть чуть не учел. Ради интереса сделал на С++ простенькую програмку
Код:
#include <iostream.h>

int main ()
{
int con=0;                  //Schetchik nuley
int mn=1;                   //Mnojimoe
for (int i=1; i<=2341; i++)
{
mn=mn*i;
while ((mn % 10) == 0)
{
con++;
mn /= 10;
}
mn %= 1000;
}
cout << con;
return 0;
}
Ответ получил 582. Так что у тебя решение правильное. Улыбаюсь
« Последнее редактирование: 08-01-2006 13:22 от Finch » Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Olegator
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #9 : 08-01-2006 14:35 » 

mn %= 1000;
Finch, это ты сделал потому что имеет значение только последние 3 не нулевые цифры?
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #10 : 08-01-2006 14:40 » 

Olegator если честно, то взял с потолка. Потом уже подумал, какое значение здесь должно быть. Пришел к выводу, что если 2341! то тут достаточно число 100.
« Последнее редактирование: 08-01-2006 14:45 от Finch » Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Mfcer__
Команда клуба

ru
Offline Offline

« Ответ #11 : 08-01-2006 23:46 » 

Mfcer__ если не секрет откуда  задачки?

Олимпиадные ...
Записан
Anarchist
Гость
« Ответ #12 : 15-01-2006 09:31 » 

Кто-нибудь, пожалуйста, помогите решить задачу про монетки! было 10 монет. одна из них- фальшивая (более лёгкая). как при помощи двух взвешиваний на стационарных весах найти эту монетку?
Записан
Rony
Гость
« Ответ #13 : 15-01-2006 14:10 » 

У меня получилось только за 3 взвешивания Жаль
За два получилось только для 9 монет.
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #14 : 15-01-2006 20:38 » 

Задачка про монетки в данном контексте вроде не имеет решения.
Расмотрим раскладки (Первое число сколько монет положено на левую часть весов, Второе число Сколько монет положено на вторую часть весов, третье число сколько монет в остатке:
1) 1 1 8
Из восьми монет выбрать фальшивую за одно взвешивание не реально
2) 2 2 6
Из шести монет выбрать фальшивую за одно взвешивание не реально
3) 3 3 4
4) 4 4 3
В самом худшем варианте придется выбирать между 4 монетами, тоже не реально за одно взвешивание
5) 5 5 0
Из пяти монет выбрать фальшивую за одно взвешивание не реально
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #15 : 16-01-2006 09:19 » new

можно за 2 взвешивания из девяти монет:
- делил на тройки (по 3 монеты);
- взмешиваем две из них => находим наиболее лёгкую тройку монет;
- взвешимаем две монеты из наиболее легкой тройки => находим наиболее легкую (фальшивую) монету.
Записан

Удачного всем кодинга! -=x[PooH]x=-
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines