Size: a a a

2021 March 23

VB

Vladislav Bardin in CODE BLOG / C#
Добрый день, подскажите, пожалуйста, возможно ли как-то в BenchmarkDotnet передавать в метод бенчмарка копию данных, так чтобы время копирования не считалось?
источник

ДЕ

Денис Егоров... in CODE BLOG / C#
Всем привет! Только начал изучение c#, посмотрел 10 занятие про рекурсию, и пока выполнял задание с числом фибоначчи, столкнулся с тем что не понял, почему мое нагроможденное решение делает вычисление быстрее.
В моем случае, даже если вычислять 2500ый элемент последовательности, выполняется за <=1мс, а в примере с метанита, который я нашел потом, на подсчет 40 элемента затрачивается примерно 3700мс, а при подстановке больших значений вообще на долго зависает.

Подскажите пожалуйста, от чего это зависит? Код сейчас пришлю
источник

ДЕ

Денис Егоров... in CODE BLOG / C#
Переслано от Денис Егоров...
Вот мое решение
источник

ДЕ

Денис Егоров... in CODE BLOG / C#
Переслано от Денис Егоров...
А вот с метанита
источник

Б[

Барсик [SpamBlock]... in CODE BLOG / C#
держу в курсе, фибоначчи можно любое число считать за константное время
источник

AK

Andrew Kravchuk in CODE BLOG / C#
Барсик [SpamBlock]
держу в курсе, фибоначчи можно любое число считать за константное время
Каким образом?
источник

Б[

Барсик [SpamBlock]... in CODE BLOG / C#
сек
источник

ДЕ

Денис Егоров... in CODE BLOG / C#
Мне просто интересно почему второй вариант так замедляет работу с каждым последующим значением. Хотя выглядит намного проще, а то что написал я мне кажется вообще ужасным кодом)
источник

Б[

Барсик [SpamBlock]... in CODE BLOG / C#
Andrew Kravchuk
Каким образом?
const goldenRatio = (1 + Math.sqrt(5)) / 2;
const Fibonacci = (n) => Math.ceil(Math.round(Math.pow(goldenRatio, n) / Math.sqrt(5)));
источник

ДЕ

Денис Егоров... in CODE BLOG / C#
Дело в двойной рекурсии?
источник

Б[

Барсик [SpamBlock]... in CODE BLOG / C#
Денис Егоров
Дело в двойной рекурсии?
да, у тебя сложность o(N) а у него o(N^2)
источник

AK

Andrew Kravchuk in CODE BLOG / C#
так погоди
источник

AK

Andrew Kravchuk in CODE BLOG / C#
я почему то туплю
источник

AK

Andrew Kravchuk in CODE BLOG / C#
Барсик [SpamBlock]
const goldenRatio = (1 + Math.sqrt(5)) / 2;
const Fibonacci = (n) => Math.ceil(Math.round(Math.pow(goldenRatio, n) / Math.sqrt(5)));
где тут константное время?
источник

ДЕ

Денис Егоров... in CODE BLOG / C#
Барсик [SpamBlock]
да, у тебя сложность o(N) а у него o(N^2)
Понял, спасибо!
источник

Б[

Барсик [SpamBlock]... in CODE BLOG / C#
Andrew Kravchuk
где тут константное время?
а какое оно
источник

Б[

Барсик [SpamBlock]... in CODE BLOG / C#
тут нет ни рекурсии ни циклов
источник

AK

Andrew Kravchuk in CODE BLOG / C#
ну так
источник

Б[

Барсик [SpamBlock]... in CODE BLOG / C#
хоть первый елемент считай хоть 100000й
источник

AK

Andrew Kravchuk in CODE BLOG / C#
от проца зависит
источник