Системное программирование, насколько я знаю, касается osdev, драйверов, утилит и так далее. Я просто не могу понять, как исчисление и линейная алгебра могут помочь в этом.
С исчислением это довольно легко, как только вы внимательно посмотрите на содержание курса . Это тесно связано со сложностью алгоритма, обозначением Big-O - и тому подобным, довольно фундаментальным в программировании.
Уравнения - это то, что вы получаете при оценке сложности алгоритма. Три уровня вложенных циклов от 0
до N
являются N 3 , два уровня вложенных циклов являются N 2 , один N. Оценка вы получаете может выглядеть следующим образом (N 3 + 2 * N 2 + N) - это уравнение.
Теперь, если вы хотите лучше понять, насколько быстро будет расти время выполнения при увеличении N, это тесно связано с производными / дифференцированием. Другие части исчисления, которые вы можете найти полезными, - это ограничения и асимптотический анализ - они приведут вас к пониманию нотации Big-O, лучшему результату при программировании интервью и, возможно, лучше к системному программированию.
- Вы назначены для разработки таблицы размещения файлов, какую структуру данных вы собираетесь использовать? Предполагая, что есть много небольших файлов, которые редко изменяются, что было бы предпочтительнее? Предполагая относительно небольшое количество больших файлов, которые всегда добавляются в конце, вы собираетесь использовать ту же структуру? Как бы вы решили?
Что касается линейной алгебры , то здесь программные приложения стреляют в вас с самого первого снимка.
Если вам когда-либо придется иметь дело с растровой графикой (например, в видеодрайверах), изображения, подобные приведенным выше, будут вам в ваших худших кошмарах.
- Почему этот тест # 12345 показывает отсутствующий пиксель? я сделал что-то не так, осуществляя Bresenham ? Может ли это быть просто ошибкой в дизайне теста, который не учитывает ошибки округления?