Название: Для кулхацкеров Отправлено: iPhonograph от Февраль 03, 2011, 06:57:10 Представьте, что Вы - хакер.
В Ваши руки попала вражеская секретная программа. Вам нужно понять, что она делает. Вы декодировали машинные инструкции и получили программу на алгоритмическом языке: 1. Алгоритм, вычисляющий X(M,N) Вход: M, N Выход: X X=0 A=1 пока M не нуль, выполнять если M нечётно, то M=M-N X=X+A конец если A=A+A M=[M/2] конец пока Что этот кусок программы делает? Что это за функция такая X(M,N) ? Ответ дать простыми словами. 2. Алгоритм, вычисляющий Y(N) Y=1 A=2*(N mod 2) B=2*(1-A) повторить [(N+1)/2] раз A=A+B B=B+8 Y=Y*max(1,A) конец повторить 3. Алгоритм, вычисляющий Z(N) Определим последовательность A(1)..A(14) = 91, 85, 51, 38, 33, 29, 23, 19, 17, 13, 11, 14, 2, 1 Определим последовательность B(1)..B(14) = 17, 78, 19, 23, 29, 77, 95, 77, 1, 11, 13, 15, 15, 55 M=2 повторить N раз повторять K=0 повторять K=K+1 пока A(K) не будет делителем M M=B(K)*M/A(K) пока M не станет степенью двойки конец повторить Z=log2(M) Название: Re: Для кулхацкеров Отправлено: Um_nik от Февраль 03, 2011, 07:38:45 X=[M/N]
Название: Re: Для кулхацкеров Отправлено: iPhonograph от Февраль 03, 2011, 07:52:22 проверь при M=1, N=2
Название: Re: Для кулхацкеров Отправлено: Um_nik от Февраль 03, 2011, 08:05:26 Так это будет бесконечный алгоритм
Название: Re: Для кулхацкеров Отправлено: iPhonograph от Февраль 03, 2011, 08:08:57 Значит, ты его не понял
Название: Re: Для кулхацкеров Отправлено: Um_nik от Февраль 03, 2011, 08:13:22 Так может, "пока М больше нуля"?
Твой алгоритм, М=1 N=2 М - нечетное М=М-N=1-2=-1 М - нечетное М=М-N=-1-2=-3 и т.д. Название: Re: Для кулхацкеров Отправлено: iPhonograph от Февраль 03, 2011, 08:26:57 ты подгоняешь алгоритм под свою функцию
а надо найти функцию, которую вычисляет этот алгоритм Название: Re: Для кулхацкеров Отправлено: Um_nik от Февраль 03, 2011, 08:28:35 Подожди.
Если М=1 N=2 , что будет на выходе? У меня по твоему алгоритму получается Х=бесконечность Название: Re: Для кулхацкеров Отправлено: Ленка Фоменка от Февраль 03, 2011, 08:48:09 Так может, "пока М больше нуля"? Умник, а это то действие всегда выполняется:Твой алгоритм, М=1 N=2 М - нечетное М=М-N=1-2=-1 М - нечетное М=М-N=-1-2=-3 и т.д. A=A+A M=[M/2] Название: Re: Для кулхацкеров Отправлено: Um_nik от Февраль 03, 2011, 08:49:39 Почему?
Как я понял, оно выплняется только тогда, когда М - не нечетное, т.е. четное. Название: Re: Для кулхацкеров Отправлено: iPhonograph от Февраль 03, 2011, 09:14:59 Почему? неправильно понялКак я понял, оно выплняется только тогда, когда М - не нечетное, т.е. четное. Цитировать Если М=1 N=2 , что будет на выходе? на этом наборе значений функция не определенаа твоя определена Название: Re: Для кулхацкеров Отправлено: Ленка Фоменка от Февраль 03, 2011, 09:39:53 Почему? нет, если М-нечетное, то выполняется Как я понял, оно выплняется только тогда, когда М - не нечетное, т.е. четное. M=M-N X=X+A Это выполняется в любом случае: A=A+A M=[M/2] Про то, что М долно быть четно нет не слова. и условия тоже нет Название: Re: Для кулхацкеров Отправлено: seamew от Февраль 03, 2011, 10:06:22 то есть, если М - четно, то ничего не выполняется?
как-то у меня была задача по информатике: Заданы функции: (http://savepic.org/1307674.gif) (http://savepic.org/1295386.gif) Найти оптимальное значение параметра a2=a* по критерию (http://savepic.org/1288218.gif) d – абсцисса точки пересечения графиков функций (http://savepic.org/1293338.gif) и (http://savepic.org/1281050.gif) . сигма1=сигма2=0.5 а1=2 с=1 е=4 тут решение находится подбором... ну то есть сначала "метод половинного деления", потом "метод золотого сечения" и т.д. мне чем-то напомнило... может, тут тоже функция с двумя неизвестными... Название: Re: Для кулхацкеров Отправлено: iPhonograph от Февраль 03, 2011, 10:38:11 Ладно, не буду мучить, ответ на первое задание:
Показать скрытый текст Первый пост обновлён, добавлена вторая программа Название: Re: Для кулхацкеров Отправлено: seamew от Февраль 03, 2011, 10:41:45 Да боже ж ты мой, объясните мне хоть кто-нибудь наконец, что такое mod ???
Название: Re: Для кулхацкеров Отправлено: Um_nik от Февраль 03, 2011, 10:53:40 Y=N! при четных N
Y=0 при нечетных N Название: Re: Для кулхацкеров Отправлено: Um_nik от Февраль 03, 2011, 10:54:26 Да боже ж ты мой, объясните мне хоть кто-нибудь наконец, что такое mod ??? a mod b - остаток от деления a на bНазвание: Re: Для кулхацкеров Отправлено: iPhonograph от Февраль 03, 2011, 10:54:56 мод - это остаток от деления
M mod N может быть от 0 до N-1 Название: Re: Для кулхацкеров Отправлено: iPhonograph от Февраль 03, 2011, 10:55:33 Y=N! при четных N неправильноY=0 при нечетных N Название: Re: Для кулхацкеров Отправлено: seamew от Февраль 03, 2011, 10:57:44 мод - это остаток от деления а почему до N-1?M mod N может быть от 0 до N-1 то есть 5 mod 2 = 1? я правильно поняла? Название: Re: Для кулхацкеров Отправлено: Um_nik от Февраль 03, 2011, 10:59:51 Ну N принадлежит Z, N>-2
при N=-1 Y=1 при N=0 Y=1 при N=2k Y=N!, где k - целое число при N=2k+1 Y=0, где k - целое число Название: Re: Для кулхацкеров Отправлено: Um_nik от Февраль 03, 2011, 11:00:34 а почему до N-1? Потому что сотаток не может быть больше или равен делителю.то есть ага5 mod 2 = 1? я правильно поняла? Название: Re: Для кулхацкеров Отправлено: iPhonograph от Февраль 03, 2011, 11:03:55 у тебя ошибка
ищи Название: Re: Для кулхацкеров Отправлено: Um_nik от Февраль 03, 2011, 11:07:08 А [5,5]=5? или 6?
Название: Re: Для кулхацкеров Отправлено: seamew от Февраль 03, 2011, 11:09:11 Y=1
A=2*(N mod 2) B=2*(1-A) раз N нечетное, то получается A=2 B=-2 повторить [(N+1)/2] раз A=A+B A=2-2 = 0 B=B+8 B=6 Y=Y*max(1,A) конец повторить повторить [(N+1)/2] раз Название: Re: Для кулхацкеров Отправлено: iPhonograph от Февраль 03, 2011, 11:12:13 А [5,5]=5? или 6? 5Название: Re: Для кулхацкеров Отправлено: VVV от Февраль 03, 2011, 11:16:41 Первый алгоритм не осуществляет деления нацело на нечетное число. Лишь в редких случаях. Чему равно 8 div 7 по этому алгоритму?
Название: Re: Для кулхацкеров Отправлено: Um_nik от Февраль 03, 2011, 11:19:34 Аа, просто Y=N!
ну и при N=-1 Y=1 Название: Re: Для кулхацкеров Отправлено: iPhonograph от Февраль 03, 2011, 11:32:21 Первый алгоритм не осуществляет деления нацело на нечетное число. Лишь в редких случаях. Чему равно 8 div 7 по этому алгоритму? "Деление нацело" - это когда числа делятся нацелоА то деление, которое обычное - это "деление с остатком" Алгоритм не вычисляет div для чисел 8 и 7 он и не должен ничего вычислять Аа, просто Y=N! ну наконец-то!ну и при N=-1 Y=1 Смотрите третью задачку, она посложнее Название: Re: Для кулхацкеров Отправлено: seamew от Февраль 03, 2011, 11:36:12 Умник, объясни мне, я не поняла
Название: Re: Для кулхацкеров Отправлено: Um_nik от Февраль 03, 2011, 11:45:02 N принадлежит Z
N>-1 Z=N+1 Название: Re: Для кулхацкеров Отправлено: VVV от Февраль 03, 2011, 11:48:30 А -7 на 7 этот алгоритм делит нацело?
Название: Re: Для кулхацкеров Отправлено: Um_nik от Февраль 03, 2011, 11:55:02 Умник, объясни мне, я не поняла Если Н - четное, то А=2*0=0, а В=2*(1-0)=2Начинаем раз за разом делать цикл: А=2 В=10 А=12 В=18 А=30 В=26 и т.д. Замечаем, что А=2=1*2 А=12=3*4 А=30=5*6 Теперь смотрим, как они увеличиваются 3*4=4+4+4 4*5=4+4+4+4+4 А(А+1)-(А-1)А=2А (А+2)(А+1)-(А+1)А=2(А+1) (А+2)(А+1)-(А-1)А=4А+2 У нас А увеличивается на 2, значит разница увеличивается на 8. *Это было такое сумбурное доказательство как бэ по индукции* Ну и для нечетных примерно так же доказывается. Основная идея доказательства: не надо у меня спрашивать, как я решил, я сам не знаю) Название: Re: Для кулхацкеров Отправлено: seamew от Февраль 03, 2011, 12:03:22 мне кажется, я туповата...
Название: Re: Для кулхацкеров Отправлено: iPhonograph от Февраль 03, 2011, 13:01:04 А -7 на 7 этот алгоритм делит нацело? ну вот, начали придираться :)Название: Re: Для кулхацкеров Отправлено: iPhonograph от Февраль 03, 2011, 13:02:42 N принадлежит Z нетN>-1 Z=N+1 Название: Re: Для кулхацкеров Отправлено: Strike от Февраль 03, 2011, 13:04:42 3) log2(15) :-\
Название: Re: Для кулхацкеров Отправлено: iPhonograph от Февраль 03, 2011, 13:05:33 3) log2(15) :-\ ответ = константа для любого входного N ?неверно Название: Re: Для кулхацкеров Отправлено: Strike от Февраль 03, 2011, 13:10:22 3) log2(15) :-\ ответ = константа для любого входного N ?неверно Название: Re: Для кулхацкеров Отправлено: Strike от Февраль 03, 2011, 13:13:20 хоть возможно и z = 1 ???
Название: Re: Для кулхацкеров Отправлено: iPhonograph от Февраль 03, 2011, 13:14:12 ответ не должен быть константой, он зависит от N
Название: Re: Для кулхацкеров Отправлено: Um_nik от Февраль 03, 2011, 13:26:26 Че нет-то?)))
Название: Re: Для кулхацкеров Отправлено: VVV от Февраль 03, 2011, 13:39:33 Кто-нибудь посчитал Z(1), Z(2), Z(3)? Неплохо бы программку написать. Многовато вычислений.
Название: Re: Для кулхацкеров Отправлено: Strike от Февраль 03, 2011, 13:43:36 где в этом алгоритме видно, что Z зависит отN ??? :-\ ?
Название: Re: Для кулхацкеров Отправлено: Um_nik от Февраль 03, 2011, 14:14:49 Если на входе M=2^n, то на выходе будет M=2^(n+1)
(Только что посчитал специально, раз уж Дискоед сказал, что неправильно. Могу выложить решение) Соответственно, если М=2^1 и повторять цикл N раз, то на выходе получится М=2^(N+1) Ну и Z=log2(2^(N+1))=N+1 Где ошибка? Название: Re: Для кулхацкеров Отправлено: iPhonograph от Февраль 04, 2011, 07:52:43 Если на входе M=2^n, то на выходе будет M=2^(n+1) В вычислениях где-то(Только что посчитал специально, раз уж Дискоед сказал, что неправильно. Могу выложить решение) Соответственно, если М=2^1 и повторять цикл N раз, то на выходе получится М=2^(N+1) Ну и Z=log2(2^(N+1))=N+1 Где ошибка? Запусти на компьютере, увидишь правильные Z(1),Z(2),... Название: Re: Для кулхацкеров Отправлено: Um_nik от Февраль 04, 2011, 08:52:13 Я не программист
Название: Re: Для кулхацкеров Отправлено: iPhonograph от Февраль 04, 2011, 09:01:47 И чо, даже программируемого калькулятора в руках не держал?
Название: Re: Для кулхацкеров Отправлено: Um_nik от Февраль 04, 2011, 09:08:50 Это типа МК-** ?
Держал, у бабушки :D Название: Re: Для кулхацкеров Отправлено: iPhonograph от Февраль 04, 2011, 09:30:49 так у тебя бабушка на нём программирует?
;D Название: Re: Для кулхацкеров Отправлено: Um_nik от Февраль 04, 2011, 09:35:54 Возможно ;D
Название: Re: Для кулхацкеров Отправлено: VVV от Февраль 04, 2011, 15:34:47 Maple говорит, что Z(i) - это i-ое простое число.
Название: Re: Для кулхацкеров Отправлено: iPhonograph от Февраль 04, 2011, 17:45:38 Трудно не верить Maplу :)
Название: Re: Для кулхацкеров Отправлено: VVV от Февраль 04, 2011, 19:20:17 Продолжение следует? Maple требует продолжения банкета.
Название: Re: Для кулхацкеров Отправлено: iPhonograph от Февраль 04, 2011, 19:39:20 так мапл только подсказку дал наводящую
теперь это нужно доказать Название: Re: Для кулхацкеров Отправлено: VVV от Февраль 04, 2011, 21:10:38 Надо думать. Выглядит все загадочно.
|