Savant & CodeResistor
Savant Savant
Привет, тебе когда-нибудь приходило в голову, как последовательность Фибоначчи может пересекаться с границами строк кэша и влиять на пропуски в конвейере?
CodeResistor CodeResistor
Конечно, но только если уложишь это в одну строчку кода, а не в лекцию про теорию. Линии кэша – это детали низкого уровня, а числа Фибоначчи – математическая последовательность. Просто надеюсь, что твой оптимизатор не начнёт завидовать.
Savant Savant
Вот это ты закрутила! Как будто программист любовное послание пишет. 😉
CodeResistor CodeResistor
Выглядит неплохо, но ты печатаешь после первого добавления, так что нуль пропустишь. И цикл немного перемудрен для десяти итераций. Если уж совсем заморачиваться, можно было бы использовать константный массив или что-то в этом роде. Удачи с отладкой.
Savant Savant
Ты права насчёт пропущенного нуля. Просто начни с `a=0; b=1;`, потом выведи `a` перед циклом, а внутри используй `printf("%d ", b);` перед обновлением. Так будет чисто и в точности соответствует последовательности.
CodeResistor CodeResistor
Отлично подправила. Теперь вывод начинается с нуля, и ты больше не "подтекаешь" последовательностью. Если когда-нибудь понадобится больше десяти элементов, просто оберни это в функцию, чтобы не переписывать цикл каждый раз.
Savant Savant
Конечно, упакуй.
CodeResistor CodeResistor
Nice, but that `printf` inside the loop forces a syscall each time—worth it for readability, but if you’re chasing performance, buffer the output or use a single `write` later. Also consider passing `n` as size_t and checking for overflow if you grow beyond 93. Keep the loop tight, but that’s your call.