Стагнация?
От: Dmi_3 Россия  
Дата: 12.11.05 22:38
Оценка: 1 (1) +2
Немного о простоте и сложности:
Запятыми разделены члены последовательности. Её элементы просты и состоят всего из трёх разных символов.
0, 00, 000, 01, 1, 10, 100, 1000, 02, 2, 20, 200, 2000, 201, 21, 210, 2100, 21000, 202, 22, 220, 2200, 22000, 2201, 221, 2210, 22100, 221000, 2202, 222, 2220, 22200, 222000, 22201, 2221
Вот ещё одна последовательность её элементы сложнее и состоят из 10 символов.
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35
Что это за последовательность?
Можете ли Вы продолжить последовательность?
Какова вероятность ошибиться при продолжении последовательности?
Ответы на эти вопросы зависит от того, кто Вы и в каком веке живёте.
Для большинства наших современников вопросы в отношении второй последовательности не вызовут трудностей.
Для древних вавилонян отдельные представители которых были умнее нас с Вами вместе взятых трудностей не вызовет первая последовательность. Они без труда узнают в ней натуральный ряд (абстрагируясь от внешнего представления I=0 V=1 X=2) и продолжат его быстрее нас.

Далее проводим аналогии:
Задача = перечислить числа от одного до 35 (очень простая задача, но и языки простые)
Последовательность = программа.
Цифры и приёмы их комбинирования = синтаксические конструкции и семантические приемы, используемые при программировании.
Если Вы знаете (и можете практически применить), конструкции и приёмы то во втором случае программа получиться короче и субъективно понятнее, несмотря на то, что число использованных приёмов и правил больше.
Объективная сложность может быть приближенно оценена по количеству Шенноновской информации. Проще говоря, заархивируйте обе последовательности и сравните размеры архивов (чем больше, тем сложнее).
Если использовать всего одну конструкцию и приём то получиться:
0, 00, 000, 0000, 00000, 000000, 0000000, 00000000, 000000000, 0000000000, 00000000000, 000000000000, 0000000000000, 00000000000000, 000000000000000, 0000000000000000, 00000000000000000, 000000000000000000, 0000000000000000000, 00000000000000000000, 000000000000000000000, 0000000000000000000000, 00000000000000000000000, 000000000000000000000000, 0000000000000000000000000, 00000000000000000000000000, 000000000000000000000000000, 0000000000000000000000000000, 00000000000000000000000000000, 000000000000000000000000000000, 0000000000000000000000000000000, 00000000000000000000000000000000, 000000000000000000000000000000000, 0000000000000000000000000000000000, 00000000000000000000000000000000000
С моей точки зрения такая программа сложнее. С Вашей – проще.
Но давайте рассмотрим семейство программ от 1 до N
В любой позиционной системе счисления её длина и сложность (хотя бы набрать) есть O(N*log(N)) В непозиционной O(N*N)
Необходимость принятия нового ПРИЁМА очевидна? Думаю – Да!
Хорошим тоном считается учёт константы при O(…).
В нашем случае она зависит от основания логарифма (K), которым является число цифр для представления чисел. Понятно, что десятичная программа (K=10) короче двоичной(K=2). Это значит что надо изучать и новые синтаксические конструкции. Но это менее важно.
Вы можете возразить что даже первобытный человек(малограмотный программист) мог считать не используя позиционной системы и мы можем набрать тысячу таких людей. OK! Но с задачей сложности N=1E+7 они не справятся в то время как тысяча умеющих считать позиционно – справятся. При условии что скорость их работы снижается медленнее чем /log(K). А ведь ещё нужен человек способный разбить задачу на подзадачи! Уж он то точно должен уметь считать! А ещё задача может быть трудноразложима (замените натуральный ряд на ряд простых или совершенных чисел). Современные задачи становятся всё сложнее и сложнее… Это не означает что нельзя использовать первобытных. Можно, особенно в относительно простых подзадачах. На что направлено и появление новых языков и политика большинства фирм. Обидно лишь то, что знающие и умеющие больше при этом остаются не у дел. Видимо
a) задачи пока недостаточно сложны
b) скорость работы умеющих снижается быстрее чем хотелось бы.
Если верно второе(а похоже что это так) то это стагнация! И мы никогда не сможем решать сверхсложные задачи.(нифига себе! Довыпендривался! Всё! Пошел повышать скорось своей работы!)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.