фишка дополнительного кода - в АЛУ нужен только сумматор. Вычитание делается как сложение уменьшаемого с вычитаемым в дополнительном коде. "вычитатор" становится не нужен.
romantica, Так ведь а с чем ещё сравнивать-то? С другими конторками подобного уровня? Нет смысла. Просто как мне кажется ВУЗ должен был чем-то передовым с точки зрения индустрии. Сколько программных разработок, без которых не мыслится современность, родилось в ВУЗах на Западе? А у нас нечто обратное получается. Хм, не знаю, кто-где устроился, но если кто-то уехал в Штаты работать кодером, я бы удивился. Но тут вопрос не про то, где кто устроился - у меня вот тоже из Штатов клиенты есть - а про уровень подготовки. Безусловно. Но, опять же, я не говорю "почему так мало хороших айтишников выпускается?" Я говорю о том, что объём знаний, которые даются в рамках, казалось бы, фундаментальной подготовки, неконкурентен. То, что люди, не осилившие программу, получают дипломы - это, конечно, тоже проблема. Но - другая. Это уже к вопросу о причинах. Нет нормальной зарплаты - любому толковому выпускнику куда интереснее в Мск уехать, чем в родных пенатах осесть. Но, я считаю, взялся делать дело - делай его хорошо. У меня знакомый один по го вообще в школе информатику преподаёт. Но я к нему в кабинет пришёл, и оторопь взяла - не самые плохие компы, ноуты, 3д-принтер, школьные(!!!) занятия по робототехнике. И это школа, блин! Просто один человек с мотивом.
sema, "Бла-бла-бла" - это абстрактная задача ни для чего. В действительности работает куча факторов - от объёма ресурсов и платформы, на которой реализуется решение, до совместимости задачи с другими модулями системы и стоимости часа программиста, с точки зрения которой может быть более эффективным самое тупое решение (если ресурсы позволяют).
Никто ничего изобретать не будет, в 99 случаев из 100 будет заюзана библиотечная реализация. Поэтому Кнут в практическом смысле малополезен.
sema, Как всегда с любыми фреймворками - есть задачи для них и не для них. Там, где требуется особенный функционал, нужен кастом, и соответственно уровень специалистов под него. Если кастом не нужен, фундаментальными вещами занимаются очень особенные люди, делающие фреймворк. А все остальные его используют.
Гении обычно плохие педагоги. ... Если физик получился скажем прямо неказист Позже может получится очень классный программист ... ---------- Сообщение добавлено 04.12.2016 19:05 ---------- Это ты сейчас на всех преподавателей и студентов кучку говна кинул или я не так понял? А потом будешь по 500 рублей за час своим детям репетиторов нанимать.
Какие ресурсы должны быть, чтоб не смочь посчитать два произведения и разность?)) Оффтоп: развели тут про ненужность нестандартных подходов.... Точно любую систему положат... ---------- Сообщение добавлено 04.12.2016 19:11 ---------- Откуда дети? там выше писали, что у программистов нет личной жизни...
Плюс cmp плюс организация цикла - вряд ли по тактам эффективнее выдет. Два произведения и разность вполне на два конвеера раскладываются.
Х Это наверное если писать на ассемблере Как хорошо, что мне не приходится ломать голову над производительностью простого арифметического выражения.
смотря какое железо. Мож у нас контроллер тупой, у которого кроме складывалки и нету ничего. Это все к вопросу о нюансах. ---------- Сообщение добавлено 04.12.2016 19:28 ---------- когда что-то выполняется в цикле сотни тысяч или миллионы раз - желательно думать над каждой строчкой.
sema, Это да. Но если педагог никакой специалист, он не сможет хорошо дать материал. Потому что будет "по бумажке" говорить и спрашивать. Эт пожалуйста, эт сколько угодно. Только понимать тему в принципе и жить в ней - всё же, немного разные штуки. Что я кинул - это пусть каждый для себя сам решит . Но мнение и о преподавателях, и о студентах у меня действительно не самое хорошее. Исключения есть, но это очень отдельные случаи. romantica, Такие, например, что можно тупо сделать цикл от x до y, вычисляющий сумму x+i (i=1..y-x-1). А можно вычислить d = y-x-1, и затем x*d + sum (i=1..d) Но на первое решение у меня бы ушло меньше минуты, на второе - больше. То, что больше времени ушло - минус. Код при втором решении будет сложнее прочитать - это тоже минус. Но производительность будет, по-видимости, выше - это плюс (хотя не факт). Итого, если у нас не стоит вопрос о жёсткой экономии ресурсов, первое решение может получиться выгоднее второго (код легче прочитать + стоимость разработки ниже). Также нужно учесть, что в одних решениях (скажем, если я пишу это на Ассемблере) нужно думать об алгоритме. В других это вызов одной библиотечкой функции "посчитать_сумму_чисел_между(x,y)".
Вероятность такой ситуации крайне мала. ---------- Сообщение добавлено 04.12.2016 19:36 ---------- E13, А можно: C = b + a*(a+1)/2 - b*(b+1)/2 при условии что b<a
в контексте общеупотребимых алу одинаковая. Именно из-за унификации и дополнение до джвух. В общем мнувгн IvUs всё правильно там написал. Я могу ещё добавить, что есть алу где негатор (то, что делает ~, а затем ++) стоит перед входом сумматора, а есть те алу, в логике которых есть отдельно вычесть и отдельно сложить. Тип алу обычно определяется реакцией бита переноса на переполнение при выполнении сложения и вычитания. Если бит переноса при сложении определяет не_заём при вычитании, значит алу с негатором, а если бит переноса является одновременно и битом заёма, то алу с отдельной логикой сложения и вычитания, хотя бывают и нюансы. Да и вообще, ты ж математик, а арехметики не знаешь. Зато наверн цепочка символов GF2 помнишь как называется. если уж так жосско оптимизировать, надо знать архитектуру процессора.
Если говорить о вероятности, то практическая задача вычислить сумму арифметической прогрессии мне ни разу за 25 лет программирования не встречалась. А вот процессоры не умеющие ничего кроме сложения попадались несколько раз. Так что вероятности у всех разные.
а можно сдвинуть шкалу на меньшее целое, далее формула арифм. прогрессии и добавить туда смещение - кол-во чисел*смещение_шкалы. ---------- Сообщение добавлено 04.12.2016 19:44 ---------- а мне несколько раз попадались процессоры, кои могли восемь_бит на восемь_бит умножать, все остальные тока складывале Да и то, как умножить две знаковые величины на процессоре с аппаратным беззнаковым умножителем (ессно используя его) без брания модулей знают немногие
romantica, И вот у нас есть третье решение. Какое более эффективно? Если мы начнём сейчас это считать, то получим где-то два часа траты времени (час на меня и час на вас). И это вместо того, чтобы менее чем за минуту написать простейший цикл с суммой. Где-то, собственно, тут и дня не жалко будет для поиска того, что будет работать лучше (по какому-то интересующему нас признаку). А где-то это просто не нужно.
Зато суть уловил ---------- Сообщение добавлено 04.12.2016 19:51 ---------- У меня эта формула с первых упражнений Демидовича о сумме ряда на подкорке записана. Я потратила менее пяти минут чтобы её применить. Просто задача была задана не мне и я воздерживалась от ответа. ---------- Сообщение добавлено 04.12.2016 19:54 ---------- Такая не попадалась, а вот решать системы уравнений приходилось в реальной практике.
romantica, Эт пожалуйста, да. Но мы тут про алгоритмы. И у нас вопрос в эффективности применения этой формулы.
Так куда мне, я вон лучше ---------- Сообщение добавлено 04.12.2016 20:31 ---------- Что-то у меня с правкой косяк какой-то.
Педагогу специалистом быть не надо!!! Учебные программы на то и учебные! ---------- Сообщение добавлено 04.12.2016 20:50 ---------- Когда таких строчек пару тысяч - возникают нюансы. Например можно ли распараллелить задачу. Для математиков фортран достаточно приемлемо оптимизирует. Специально схему с фортрана на плюсы переписывал и на кластере сравнивал. Вот для этого собственно математика программисту и нужна. Я уже не говорю про оптимизацию и сложность алгоритма. Но искать арифметическую прогрессию в цикле - это извините 7 класс школы. А обобщить пример с банальнейшей прогрессией никак нельзя? Прям за все 25 лет в лоб все считал и ни одной готовой формулы не применил? Что и a в степени b циклом считаешь?
Бабруйский Диверсант, погоди, причем тут математика и то, что ты написал? Я в курсе, что разность а и б это сумма а с б, умноженным на минус один (сумма с противоположным числу б). АЛУ я проходила в университете, помню все эти сумматоры, полусумматоры, но я с ними не сталкивалась нигде больше.