В соседнем посте возник известный тип задач о получении некоторого числа с помощью нескольких других и любых знаков. Самая замечательная задача такого рода была придумана Полем Дираком.
В помощью всего трёх двоек, а также любых знаков и других математических обозначений записать любое натуральное число.
Здравствуйте, Pushkin, Вы писали:
P>В помощью всего трёх двоек, а также любых знаков и других математических обозначений записать любое натуральное число.
Хмм...
(2-2)/2 = 0
2-2/2 = 1 (2^0)
(2+2)/2 = 2 (2^1)
Все остальное получается через комбинации этих выражений
Здравствуйте, Pushkin, Вы писали:
P>В соседнем посте возник известный тип задач о получении некоторого числа с помощью нескольких других и любых знаков. Самая замечательная задача такого рода была придумана Полем Дираком.
P>В помощью всего трёх двоек, а также любых знаков и других математических обозначений записать любое натуральное число.
Используется оператор квадратного корня SQRT как степень 1/2.
Здравствуйте, Pushkin, Вы писали:
P>В помощью всего трёх двоек, а также любых знаков и других математических обозначений записать любое натуральное число.
Если можно вводить нетерминальные символы, то
def y = exp x --- заведомо не равное нулю число
n = (y+...+y)/y
Если можно пользоваться символьными константами, то это вообще песня:
n = (П+...+П)/П
(в оригинальном решении неявно используются константы e и 1/2).
Или вот еще:
def z = x-x --- ноль
def d = exp z --- единица
Здравствуйте, Кодт, Вы писали:
К>Здравствуйте, Pushkin, Вы писали:
P>>В соседнем посте возник известный тип задач о получении некоторого числа с помощью нескольких других и любых знаков. Самая замечательная задача такого рода была придумана Полем Дираком.
P>>В помощью всего трёх двоек, а также любых знаков и других математических обозначений записать любое натуральное число.
К>Используется оператор квадратного корня SQRT как степень 1/2.
К>n = ln 2 / 2 ln (sqrt sqrt ... sqrt 2) К>= ln 2 / 2 ln (2^(1/2n)) = К>= ln 2 / 2*(1/2n * ln 2) = К>= 1 / 1/n
Здравствуйте, Кодт, Вы писали:
К>Используется оператор квадратного корня SQRT как степень 1/2.
Идея верная, но реализация нет.
Возможно, дело в том, что ниже неаккуратно написано (скобки и всё такое).
Но боюсь, не только в этом — там (пардон) просто ерунда написана
К>n = ln 2 / 2 ln (sqrt sqrt ... sqrt 2)
Здравствуйте, Pushkin, Вы писали: P>кто сказал, что (sqrt sqrt ... sqrt 2) = 2^(1/2n)
А ведь верно! Будет (((2^1/2)^1/2)...)^1/2 = 2^(1/2*1/2*...*1/2) = 2^(1/(2^n))
... << RSDN@Home 1.0 beta 3 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, Pushkin, Вы писали: P>>кто сказал, что (sqrt sqrt ... sqrt 2) = 2^(1/2n) S>А ведь верно! Будет (((2^1/2)^1/2)...)^1/2 = 2^(1/2*1/2*...*1/2) = 2^(1/(2^n))
Сорри, залепуха вышла.
E = sqrt exp 2 = e
S = sqrt...sqrt E = e^(1/2^n)
L = ln E = 1/2^n
LL = ln L = -n ln 2
n = -LL / ln 2
Здравствуйте, Кодт, Вы писали: К>Итого К>n = — (ln ln sqrt{n+1} exp 2) / ln 2
гм. Все почти хорошо. Только где же третья двойка? Ведь точно помню, в обед еще... была третья двойка... Хто взял?.. Сознавайтесь, злодеи!
... << RSDN@Home 1.0 beta 3 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, Кодт, Вы писали: К>>Итого К>>n = — (ln ln sqrt{n+1} exp 2) / ln 2 S>гм. Все почти хорошо. Только где же третья двойка? Ведь точно помню, в обед еще... была третья двойка... Хто взял?.. Сознавайтесь, злодеи!
Зато появилось явно число e — в математике (а Дирак был математиком) не пишут 'exp'.
А если разрешать букву e, то можно и (e+e+e+...)/e
Здравствуйте, Pushkin, Вы писали:
К>>>Итого К>>>n = — (ln ln sqrt{n+1} exp 2) / ln 2 S>>гм. Все почти хорошо. Только где же третья двойка? Ведь точно помню, в обед еще... была третья двойка... Хто взял?.. Сознавайтесь, злодеи!
P>Зато появилось явно число e — в математике (а Дирак был математиком) не пишут 'exp'. P>А если разрешать букву e, то можно и (e+e+e+...)/e
Еще как пишут. e — это ЧИСЛО, а exp — экспоненциальная ФУНКЦИЯ.
Здравствуйте, Pushkin, Вы писали:
P>В помощью всего трёх двоек, а также любых знаков и других математических обозначений записать любое натуральное число.
А можно уточнить множество "любые знаки и другие математические обохначения"?
Здравствуйте, Багер, Вы писали:
Б>Аналогичная задача про четыре четвёрки была уже? Мол, любое число, любые математические операции, но никаких констант.
Здравствуйте, Кодт, Вы писали:
К>Если можно вводить нетерминальные символы, то
К>def y = exp x --- заведомо не равное нулю число К>n = (y+...+y)/y
К>Если можно пользоваться символьными константами, то это вообще песня: К>n = (П+...+П)/П К>(в оригинальном решении неявно используются константы e и 1/2).
К>Или вот еще: К>def z = x-x --- ноль К>def d = exp z --- единица
Здравствуйте, ZakkeR, Вы писали:
ZR>Здравствуйте, Багер, Вы писали:
Б>>Аналогичная задача про четыре четвёрки была уже? Мол, любое число, любые математические операции, но никаких констант.
А если применить формулу г-на Кодта, то:
n = log2(ln(4)/(4*ln(sqrt(sqrt(sqrt(sqrt(sqrt(sqrt(sqrt(sqrt(sqrt(sqrt(sqrt(sqrt(sqrt(sqrt(sqrt ... (4)))))))))))))))))...)
Где четвертая четверка фигурирует в основании двоичного логарифма, собственно и делая его двоичным. А если оперция log2 разрешена сама по себе, то четвертую четверку можно просто прибавить ко всему выражению и успокоиться
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, Кодт, Вы писали: К>>Итого К>>n = — (ln ln sqrt{n+1} exp 2) / ln 2 S>гм. Все почти хорошо. Только где же третья двойка? Ведь точно помню, в обед еще... была третья двойка... Хто взял?.. Сознавайтесь, злодеи!
Что-то вы совсем расслабились за мое отсутствие. Двойку найти не можете! Вот она:
Здравствуйте, Pushkin, Вы писали:
P>В помощью всего трёх двоек, а также любых знаков и других математических обозначений записать любое натуральное число.
У Кодта в последнем варианте, в принципе, всё правильно, но в оригинале мне всё-таки нравится больше
Здравствуйте, ZakkeR, Вы писали: >А если применить формулу г-на Кодта, то:
1. будет совершенно неинтересно ))
2. да и код для 55 будет уж очень длинным и долго трудоёмко выполняющимся.
А вот дальше — интереснее ))
Используем как макро выражения собранных цифр. Ко всем нижеследующим
выражениям можно добавить соответствующее макро 0х... для выполнения
условия о четырёх четвёрках:
0x4= (i-i)*4
0x44= 4 -4
0x444= 4 -sqrt(4*4)
1x4= -(i)^sqrt(4)
1x44= 4/4
1х444= 4^(4-4)
2x4= sqrt(4)
2x44= 4 -2x4
2x444= 4 -2x44
3x44= 4 -1x4
3x444= 4 -1x44
4x44= sqrt(4*4)
4x444= 4 -0x44
5x44= 4 +1x4
5x444= 4 +1x44
6x44= 4 +2x4
6x444= 4 +2x44
7x444= (4! +4)/4
8x44= 4 +4
8x444= 4 +sqrt(4*4)
9x444= 8x44 +1x4
10x444= 8x44 +2x4
11x444= 44/4
12x444= 4*3x44
Если мне не изменяет память, то нельзя игнорировать при
записи логарифма цифру 2, ln и lg -актуальны.
...
19= 4! -4 -4/4
...
23= 4! -1x444
24= 4! -0x444
25..36= 4! +1..12x444
37..39= 4E+1x4 -3..1x44
40x44= 4E+1x4
41..46= 40x44 +1..6x44
47= 4! +4! -1x44
48x44= 4! +4!
49..54= 48x44 +1..6x44
55= ?
Ваша программа работает корректно? Один звонок и я всё исправлю!
Здравствуйте, mrhru, Вы писали:
M>Тогда можно еще и так:
M>def N = n //само число, тогда M>n = N
Нифига! "def" — это, считай, макрос. В твоем варианте появляются числа, тогда как в моих — их нет.
(x-x) == 0 для любого x.
Впрочем, можно вообще обойтись без чисел. Если привлечь теоретико-множественный аппарат.
Мощность пустого множества:
|| {} || == 0
Мощность одноэлементного множества:
|| {X} || == 1,
где X — на выбор, либо пустое множество {}, либо его мощность 0.
Имея 0, 1 и +, согласно основам арифметики, можно творить чудеса.
2 = 1+1
3 = 2+1
и т.д.
Если не определена операция сложения, но допускаются гетерогенные множества, то
определим набор уникальных элементов
I(k) = k==0 ? {} : { I(k-1) }
т.е. I0 = {}, I1 = { {} }, I2 = { { {} } } и так далее.
n = || { I(0) ... I(n-1) } ||
т.е. мощность множества из n разных элементов.
Для гомогенных множеств — придется поизгаляться с двоичным представлением.
Универсум порядка 0, U(0), содержит один уникальный объект — "пустое множество типа 0", он же o(0).
Универсум порядка k, U(k), состоит из подмножеств универcума U(k-1).
Здравствуйте, ZakkeR, Вы писали:
Б>>>Аналогичная задача про четыре четвёрки была уже? Мол, любое число, любые математические операции, но никаких констант.
ZR> ZR>А если применить формулу г-на Кодта, то:
ZR>n = log2(ln(4)/(4*ln(sqrt(sqrt(sqrt(sqrt(sqrt(sqrt(sqrt(sqrt(sqrt(sqrt(sqrt(sqrt(sqrt(sqrt(sqrt ... (4)))))))))))))))))...)
ZR>Где четвертая четверка фигурирует в основании двоичного логарифма, собственно и делая его двоичным. А если оперция log2 разрешена сама по себе, то четвертую четверку можно просто прибавить ко всему выражению и успокоиться
Нафига такие сложности. Используем формулу Дирака, заменяя каждую 2 на sqrt 4.
Итого, 3 четверки.
Оставшуюся 4 можно куда-нибудь припахать, например, написав формулу для n+4, и явно отнять 4 от полученного результата.
Здравствуйте, Кодт, Вы писали:
К>Оставшуюся 4 можно куда-нибудь припахать, например, написав формулу для n+4, и явно отнять 4 от полученного результата.
Здравствуйте, Кодт, Вы писали:
M>>Тогда можно еще и так:
M>>def N = n //само число, тогда M>>n = N
К>Нифига! "def" — это, считай, макрос. В твоем варианте появляются числа, тогда как в моих — их нет.
Фигушки "нифига"
"(в оригинальном решении неявно используются константы e и 1/2)" !!!
Ну да, а что мне может помешать заранее продекларировать некие обозначения для всех возможных n, а потом их и использовать.
Вообще-то все эти "безобразия" от неточности терминологии (как всегда).
К>Впрочем, можно вообще обойтись без чисел. Если привлечь теоретико-множественный аппарат.
Здравствуйте, mrhru, Вы писали:
M>Вспомним лямбда-исчисление?...
Придется повыкручиваться с определением чисел.
Возможный способ — считать n = длина списка из n.
Все-таки, в теории множеств есть понятие кардинального числа — мощности множества; множество кардинальных чисел — это 0, натуральные и алефы.
В лямбда-исчислении — числа это привнесенные сущности.
Здравствуйте, Micker, Вы писали:
MP>>>n = — log2(log2(sqrt{n}(2)))
P>>О оно ! Вариант Дирака !
M>Раскентуйте мне, плиз, а sqrt{n}(2) для случая n = 5555 не использует цифру пять?
нет. Это означает, что в формуле написано
sqrt( sqrt( ... пять тысяч пятьсот пятьдесят пять раз прописью ... sqrt( 2 ) ... ) )