Автор | Репетиторство по математике |
для MrSlayer:
работаю как раз в области теории алгоритмов
хм)
еще стоят задачи определения эффективности того или иного алгоритма, как вычислить инварианты и пр.
типо определить вычислительную сложность этого алгоритма, О(?)
def md(a,b):
if (a-b)<=b:
return a-b
else:
return md((a-b),b) |
Вообще, мне математика интересна, не все её разделы, но многие
Посоветуйте книгу, которая бы обзорно рассказывала про каждый раздел
Ну типо функциональный анализ это ***, он нужен для ***, применяется в *** |
def md(a,b) че это? расшифруй операцию, синтаксис мне не изместен |
для MrSlayer:
ой, не тот алгоритм скопипастил)
хотел написать вычисление чисел Фиббоначи
язык scheme
(define (fibx n) определяем функцию
(cond если ***
((= n 0) 0) n=0, то вернем 0
((= n 1) 1) n=1, то вернем 1
(else иначе
(+(fib (- n 1)) (fib (- n 2))) вернем сумму
))) |
def md(a,b):
деф - защищаем, md - мид, середина, центр значит
защищаем а и б по центру!
if (a-b)<=b:
если а и б угрожает копьем какое то другое б с точками
return a-b
то отступаем а и б
else:
иначе
return md((a-b),b)
возвращаемся на мид, но при этом берем в плен Б с точками! |
def md(a,b):
if (a-b)<=b:
return a-b
else:
return md((a-b),b)
задачку на ночь дал :) я оценкой как бы не занимаюсь непосредственно, могу сказать что вычислительная сложность 4 (вычитание, сравнение, вычитание, возврат)*число проходов. А вот как рассчитать вычислительную сложность рекурсивного алгоритма я подзабыл. Придется гуглить... |
с функциональными языками я не работаю, вторую задачу придется переписать условие на каком-нибудь структурном. |
для MrSlayer:
задачку на ночь дал
это заготовка алгоритма остатка от деления, хочу потом распораллелить, баловство короче)
(define (fibx n) определяем функцию
(cond если ***
((= n 0) 0) n=0, то вернем 0
((= n 1) 1) n=1, то вернем 1
(else иначе
(+(fib (- n 1)) (fib (- n 2))) вернем сумму
)))
вот это было бы неплохо
знаю, что тут много лишних вычислений и ваще, но хотелось бы уметь "ставить на мат. рельсы" и с них "спускать" |
куда ты на мид с ботлом идешь
ливни рак |
def md(a,b):
if (a-b)<=b:
return a-b
else:
return md((a-b),b)
О(a/b) вызовов, правильно? |
ой, О(a/b+1), не заметил <= :) |
с функциональными языками я не работаю
ок, хотя алгоритм предельно прост
unsigned in fib(x)
{
if (x==0) return 0
else if (x==1) return 1
else fib(x-1)+fib(x-2)
}
вроде так |
для MrSlayer:
def md(a,b):
if (a-b)<=b:
return a-b
else:
return md((a-b),b)
да то я не то скопировал, забей на этот алгоритм
мне про конкретную реализацию Фибоначчи интересно |
unsigned in fib(x)
{
if (x==0) return 0
else if (x==1) return 1
else fib(x-1)+fib(x-2)
}
так точно не будет работать в плане синтаксиса.
unsigned int fib(x)
{
if (x==0) return 0
else if (x==1) return 1
else return fib(x-1)+fib(x-2)
}
С точки зрения операция тоже избыточно, два сравнения за проход можно успешно заменить на одно сравнение:
unsigned int fib(x)
{
if (x<=1) return 1
else return fib(x-1)+fib(x-2)
} |
для MrSlayer:
ну не суть, сложность то какая? |
Развили тему:) |
для Jazir:
Вот блин, забыл ответить на твой вопрос)
Написать тебе когда будуна это способен?
Напиши когда поймешь большую часть дискретки |
блин, сложную задачку подкинул... Все думаю :)
Давай все же еще вот договоримся, что переменная X объявляется внутри функции, ибо если она глобальная (например в реализации на C++) результат будет иным. |
Если ваш диалог был по дискритке, то я её буду изучать на старших курсах. Так что врятли я стану изучать её сам в этом году. Попробую не забыть написать когда пойму) |
для MrSlayer:
х же извне берется, параметр же |