Это простые множители калькулятор: http://www.mathwarehouse.com/arithmetic/numbers/prime-number/prime-factorization-calculator.phpПочему мой компьютер зависает и падает, когда я прошу его найти основную факторизацию очень большого числа?
Когда я ввожу номер в нем, а затем нажмите на кнопку «Рассчитать», мой компьютер будет пытаться разделить его на каждом простое число (до его квадратный корень), чтобы получить его первичная факторизация.
Но мой вопрос касается того, что происходит, когда я входной очень большое количество ...
Mozilla Firefox замерзает, а затем падает с треском.
Но почему? Что думал мой компьютер? Не мог ли он понять, что число слишком велико и что он не сможет добиться успеха? И почему он не мог просто перестать рассчитывать вместо замораживания, а затем рушиться?
Если я попрошу вас выскочить из окна, вы сначала оцените ситуацию, а затем вы мне позвоните: «Нет, я не буду, высота слишком велика». Аналогично, когда я прошу свой компьютер рассчитать первичную факторизацию смехотворно большого числа, почему он не может мне сказать: «Нет, я не буду, число слишком велико»?
Мой компьютер просто слепо рассчитывает, ни разу не колеблясь, ни разу не отступают, пока он не врезается в большой кирпичной стене ...
IOW нашей общая модель выполнения невероятно бедна, по-прежнему, после 70+ лет вычислительной истории (это просто расчет). Но он мог бы включать в себя выполнение в песочнице для каждой новой задачи со всеми видами обратной связи, такими как прошедшее время, и прогнозируемое время до завершения (автоматически полученное) - как часть модели исполнения, без каких-либо вмешательств, подумал о программисте. Наши компиляторы всегда могли постоянно работать в фоновом режиме, пытаясь улучшить исполняемый код, перекомпилировать и «горячую» замену по мере необходимости. Тогда оператор * human * мог вмешаться, слишком долго ожидая ... –
... но это означает наличие (возможно, очень высокого уровня) исходного кода, доступного во всем мире, и, в конечном итоге, создание кодовых текстов искусственных систем, заменяющих человеческих программистов, место только для * дизайнеров *. Так что это не наш путь * завтра * еще совсем ... –
@WillNess: Можно сказать, что модель исполнения, которую мы сейчас имеем, ужасна, но она лучше всех альтернатив. :) –