Форум - стая f; r идеи

Кое е по-ефективно?

»Понеделник декември

Кое е по-ефективно?

Принос от Deung »Понеделник 10 декември 2012 18:46

Наскоро в информационния клас имахме задачата да напишем програма за непокорство на диетата.
Програмата трябва да изчисли продължителността на процеса на отслабване, ако загубите 2% от телесното си тегло на седмица.

Тъй като исках да бъда особено умен с моя съсед, разбира се, видяхме цялото нещо като експоненциална функция и си помислихме следното.

Re: кое е по-ефективно?

Принос от клоиднерукс »Понеделник 10 декември 2012 19:14

Не можете да отговорите така. Проблемът е как компилаторът/интерпретаторът прави код.
Тук сме тествали кода един срещу друг: http: //www.proggen.org/doku.php? Id = project: wordcount
Резултатът беше, че написах код, който компилаторът внедри толкова добре, дори без допълнителни оптимизации, че беше сред първите три, докато "оптимизираният" код беше по-бавен.

Разбира се, можете приблизително да прецените колко време ще отнеме нещо. Вашето решение с логаритъм има почти постоянно време на работа, независимо от числата. Цикълът ще отнема все повече и повече, тъй като разликата между началното и крайното тегло се увеличава и осигурява само точно определяне на една седмица.

Но независимо от времето на изпълнение, виждам решението с логаритъма като по-разумен подход, тъй като няма абсолютно никаква нужда от цикли и логаритъмът работи по-добре, особено за големи числа.
Освен това сте предоставили и доказателство за коректността на резултата си.