November 2021

S M T W T F S
 123456
78910111213
1415161718 1920
21222324252627
282930    

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Wednesday, February 20th, 2013 07:30 pm
Преамбула. Среди математиков гуляет крылатая фраза "Бог создал натуральные числа, остальное - дело рук человека". На самом деле, если википедия и словарь немецкого нам не врут, то Кронекер сказал про целые, а не натуральные, и рук там тоже не было (что логично, остальную математику человек создал по большей части не руками).

Амбула. Предположим, что Бог действительно создал натуральные или целые числа. Из соображений божественности :) понятно, что все-таки натуральные, а не целые, отрицательное число отчетливо небожественно. Таки у меня к вам два вопроса.

1. Какую именно структуру создал Бог?

2. Ноль входит?

Понятно, что натуральные числа можно задавать разными способами. Понятно, что просто натуральный ряд, без операций, Бог не создавал, смысла нет. Понятно, что, скажем, вычитание и деление не входят (множество натуральных чисел относительно них не замкнуто). Очевидно, что и, скажем, факториал тоже придуман людьми. А какие операции божественны?

Я ставлю на: единицу (ноль не входит), следующее число (AKA +1), и... а вот что "и"? В основаниях математики тут используют рекурсию. Но рекурсия - понятие, мягко говоря, недетской сложности, его в школе до сих пор фактически не дают. Даже в вузах проходят построение целых чисел, рациональных, предела, действительных, производной, интеграла, и с легкостью доходят до гребеней математической статистики, рекурсию даже не упомянув. Между тем сложение детям, если объясняют, то объясняют по сути через примитивную рекурсию... Хотя нет, через итерацию. Через разворачивание числа в последовательность. Умножение тоже так вводят. "... и понятие последовательности"?
Thursday, February 21st, 2013 04:08 pm (UTC)
По-моему, проблема останова в рекурсивном случае не страшнее, чем в итеративном. Если вас смущает рекурсия, но не смущает ряд Коллатца (n := odd(n) ? 3n+1 : n/2)... ну я не знаю. А проблема, на мой взгляд, именно в том, что частный случай в программах, написанных понимающими рекурсию людьми, почему-то оказывается заодно и вырожденным. Ну, например... нет, не факториал. :-) Давайте определим ну хотя бы понятие "сумма n чисел". Для нормального человека простейший ("содержательный") частный случай -- это когда n=2. И сведение n=3 к n=2, n=4 к n=3 и так далее трудностей, по-моему, не вызывает. Но уже даже случай n=1 слегка нервирует, а уж n=0...

"Сумма ничего есть ничего" -- это игра слов, потому что произведение ничего равно единице, а чему равна конъюнкция ничего -- мне приходится каждый раз заново решать эту задачу в обратную сторону: чему она должна быть равна, чтобы применять рекурсию? Мне кажется, что если бы реальный код останавливался на n=2, то он был бы гораздо понятнее. Правда, у этого есть другая сторона: не факт, что он правильно работал бы при n=1 и n=0. А если и работал бы, то случайно. Я не знаю, что с этим делать.

P.S. В языке k (это такой потомок APL) пустых списков пять -- гетерогенный и четыре гомогенных по четырём базовым типам. Забавно, как они печатаются, какой вид автор считает "каноническим изображением": (), !0, 0#0.0, "" и 0#`

... Я купил за три рубля компилятор с паскаля ...