Любое число тремя двойками
От: Pushkin Россия www.linkbit.com
Дата: 14.01.03 11:31
Оценка:
В соседнем посте возник известный тип задач о получении некоторого числа с помощью нескольких других и любых знаков. Самая замечательная задача такого рода была придумана Полем Дираком.

В помощью всего трёх двоек, а также любых знаков и других математических обозначений записать любое натуральное число.

16.01.03 22:30: Перенесено из 'Алгоритмы'
Re: Любое число тремя двойками
От: Gollum Россия  
Дата: 14.01.03 11:42
Оценка:
Здравствуйте, Pushkin, Вы писали:

P>В помощью всего трёх двоек, а также любых знаков и других математических обозначений записать любое натуральное число.


Хмм...

(2-2)/2 = 0
2-2/2 = 1 (2^0)
(2+2)/2 = 2 (2^1)

Все остальное получается через комбинации этих выражений
... << RSDN@Home 1.0 beta 4 >>
Eugene Agafonov on the .NET

Re: Любое число тремя двойками
От: Кодт Россия  
Дата: 14.01.03 12:02
Оценка: 40 (3)
Здравствуйте, 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
Перекуём баги на фичи!
Re[2]: Любое число тремя двойками
От: Кодт Россия  
Дата: 14.01.03 12:04
Оценка:
Здравствуйте, Gollum, Вы писали:

G>(2-2)/2 = 0

G>2-2/2 = 1 (2^0)
G>(2+2)/2 = 2 (2^1)

G>Все остальное получается через комбинации этих выражений


Продемонстрируй, пожалуйста, не размножая при этом двойки.
Перекуём баги на фичи!
Re[3]: Любое число тремя двойками
От: Gollum Россия  
Дата: 14.01.03 12:22
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, Gollum, Вы писали:


G>>2-2/2 = 1 (2^0)


К>Продемонстрируй, пожалуйста, не размножая при этом двойки.


Это я плохо вопрос прочитал. Все, больше не буду
... << RSDN@Home 1.0 beta 4 >>
Eugene Agafonov on the .NET

Re: Любое число тремя двойками
От: Кодт Россия  
Дата: 14.01.03 12:41
Оценка:
Здравствуйте, Pushkin, Вы писали:

P>В помощью всего трёх двоек, а также любых знаков и других математических обозначений записать любое натуральное число.


Если можно вводить нетерминальные символы, то

def y = exp x --- заведомо не равное нулю число
n = (y+...+y)/y

Если можно пользоваться символьными константами, то это вообще песня:
n = (П+...+П)/П
(в оригинальном решении неявно используются константы e и 1/2).

Или вот еще:
def z = x-x --- ноль
def d = exp z --- единица
Перекуём баги на фичи!
Re[2]: Любое число тремя двойками
От: flyker Россия  
Дата: 14.01.03 12:42
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, 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

А Поль Дирак знал про этот оператор ?
Все гениальное — просто
Re[3]: Любое число тремя двойками
От: Sinclair Россия https://github.com/evilguest/
Дата: 14.01.03 13:16
Оценка: 12 (1)
Здравствуйте, flyker, Вы писали:
Я думаю, знал. Если уж он придумал обобщенные функции и оператор Дирака, то про квадратные корни наверное знал...
... << RSDN@Home 1.0 beta 3 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: Не-а
От: Pushkin Россия www.linkbit.com
Дата: 14.01.03 13:51
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Используется оператор квадратного корня SQRT как степень 1/2.


Идея верная, но реализация нет.
Возможно, дело в том, что ниже неаккуратно написано (скобки и всё такое).
Но боюсь, не только в этом — там (пардон) просто ерунда написана

К>n = ln 2 / 2 ln (sqrt sqrt ... sqrt 2)


кто сказал, что (sqrt sqrt ... sqrt 2) = 2^(1/2n)

К>= ln 2 / 2 ln (2^(1/2n)) =

К>= ln 2 / 2*(1/2n * ln 2) =
К>= 1 / 1/n
Re[2]: Любое число тремя двойками
От: Pushkin Россия www.linkbit.com
Дата: 14.01.03 13:54
Оценка:
Здравствуйте, Кодт, Вы писали:

К>(в оригинальном решении неявно используются константы e и 1/2).


Дык вся фишка в неявности !
Re[3]: Не-а
От: Sinclair Россия https://github.com/evilguest/
Дата: 14.01.03 13:56
Оценка:
Здравствуйте, 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 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[4]: Не-а
От: Кодт Россия  
Дата: 14.01.03 14:26
Оценка:
Здравствуйте, 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
Перекуём баги на фичи!
Re[5]: Не-а
От: Sinclair Россия https://github.com/evilguest/
Дата: 14.01.03 14:31
Оценка:
Здравствуйте, Кодт, Вы писали:
К>Итого
К>n = — (ln ln sqrt{n+1} exp 2) / ln 2
гм. Все почти хорошо. Только где же третья двойка? Ведь точно помню, в обед еще... была третья двойка... Хто взял?.. Сознавайтесь, злодеи!
... << RSDN@Home 1.0 beta 3 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[6]: Не-а
От: Pushkin Россия www.linkbit.com
Дата: 14.01.03 14:43
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Кодт, Вы писали:

К>>Итого
К>>n = — (ln ln sqrt{n+1} exp 2) / ln 2
S>гм. Все почти хорошо. Только где же третья двойка? Ведь точно помню, в обед еще... была третья двойка... Хто взял?.. Сознавайтесь, злодеи!

Зато появилось явно число e — в математике (а Дирак был математиком) не пишут 'exp'.
А если разрешать букву e, то можно и (e+e+e+...)/e
Re[7]: Не-а
От: Lexey Россия  
Дата: 14.01.03 15:05
Оценка:
Здравствуйте, Pushkin, Вы писали:

К>>>Итого

К>>>n = — (ln ln sqrt{n+1} exp 2) / ln 2
S>>гм. Все почти хорошо. Только где же третья двойка? Ведь точно помню, в обед еще... была третья двойка... Хто взял?.. Сознавайтесь, злодеи!

P>Зато появилось явно число e — в математике (а Дирак был математиком) не пишут 'exp'.

P>А если разрешать букву e, то можно и (e+e+e+...)/e

Еще как пишут. e — это ЧИСЛО, а exp — экспоненциальная ФУНКЦИЯ.
"Будь достоин победы" (c) 8th Wizard's rule.
Re[8]: А четыре четвёрки?
От: Багер  
Дата: 14.01.03 17:04
Оценка:
Аналогичная задача про четыре четвёрки была уже? Мол, любое число, любые математические операции, но никаких констант.
Ваша программа работает корректно? Один звонок и я всё исправлю!

Делаю потенциальные фичи :))
Re: Любое число тремя двойками
От: comer США http://getboost.codeplex.com/
Дата: 14.01.03 17:40
Оценка:
Здравствуйте, Pushkin, Вы писали:

P>В помощью всего трёх двоек, а также любых знаков и других математических обозначений записать любое натуральное число.

А можно уточнить множество "любые знаки и другие математические обохначения"?
getboost.codeplex.com
citylizard.codeplex.com
Re[5]: Не-а
От: Atilla Россия  
Дата: 14.01.03 17:59
Оценка:
Здравствуйте, Кодт, Вы писали:

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

а если так?
S = sqrt...sqrt 2 = 2^(1/2^n)
L=ln S=(1/2^n)*ln 2
LL=ln (L/ln 2)=-n*ln 2
n=-LL/ln 2


итого:
n = - (ln ((ln sqrt{n+1}2) / ln 2)) / ln 2


как раз 3 двойки и ни одной экспоненты
... << RSDN@Home 1.0 beta 4 >>
Кр-ть — с.т.
Re[9]: А четыре четвёрки?
От: ZakkeR Россия http://znav.narod.ru
Дата: 15.01.03 01:38
Оценка:
Здравствуйте, Багер, Вы писали:

Б>Аналогичная задача про четыре четвёрки была уже? Мол, любое число, любые математические операции, но никаких констант.


0 = 44 — 44
1 = 44 / 44
2 = 4/4 + 4/4
3 = (4+4+4)/4
4 = sqrt(4*4) + 4 — 4
5 = 4 + (sqrt(4*4))/4
6 = 4 + sqrt(4) + 4 — 4
7 = 4 + sqrt(4) + 4/4
8 = 4 + 4 + 4 — 4
9 = 4 + 4 + 4/4
10 = 4 + 4 + 4/sqrt(4)
11 = 44 / (sqrt(4*4))
12 = (44+4)/4
13 = 44/4 + sqrt(4)
14 = 4*4 — 4/sqrt(4)
15 = 4*4 — 4/4
16 = 4*4 + 4 — 4
17 = 4*4 + 4/4
18 = 4*4 + 4/sqrt(4)
19 = 4*4 + log2(4+4)
20 = 4*4 + sqrt(4*4)
21 = (44-sqrt(4))/sqrt(4)
22 = 44 / 4 * sqrt(4)
23 = ?

фсе! моя устала
regards
Re[2]: Re: Любое число тремя двойками
От: mrhru Россия  
Дата: 15.01.03 02:09
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Если можно вводить нетерминальные символы, то


К>def y = exp x --- заведомо не равное нулю число

К>n = (y+...+y)/y

К>Если можно пользоваться символьными константами, то это вообще песня:

К>n = (П+...+П)/П
К>(в оригинальном решении неявно используются константы e и 1/2).

К>Или вот еще:

К>def z = x-x --- ноль
К>def d = exp z --- единица

Тогда можно еще и так:

def N = n //само число, тогда

n = N
Re[10]: А четыре четвёрки?
От: ZakkeR Россия http://znav.narod.ru
Дата: 15.01.03 03:16
Оценка:
Здравствуйте, 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 разрешена сама по себе, то четвертую четверку можно просто прибавить ко всему выражению и успокоиться
regards
Re[6]: Не-а
От: MichaelP  
Дата: 15.01.03 07:09
Оценка: 14 (1)
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Кодт, Вы писали:

К>>Итого
К>>n = — (ln ln sqrt{n+1} exp 2) / ln 2
S>гм. Все почти хорошо. Только где же третья двойка? Ведь точно помню, в обед еще... была третья двойка... Хто взял?.. Сознавайтесь, злодеи!

Что-то вы совсем расслабились за мое отсутствие. Двойку найти не можете! Вот она:
n = - log2(log2(sqrt{n}(2)))
Re: Версия Дирака
От: Pushkin Россия www.linkbit.com
Дата: 15.01.03 07:13
Оценка:
Здравствуйте, Pushkin, Вы писали:

P>В помощью всего трёх двоек, а также любых знаков и других математических обозначений записать любое натуральное число.


У Кодта в последнем варианте, в принципе, всё правильно, но в оригинале мне всё-таки нравится больше

N = — log2 log2 sqrt sqrt ...N раз... 2
Re[7]: Не-а
От: Pushkin Россия www.linkbit.com
Дата: 15.01.03 07:19
Оценка:
Здравствуйте, MichaelP, Вы писали:

MP>n = — log2(log2(sqrt{n}(2)))


О оно ! Вариант Дирака !
Re[2]: Версия Дирака
От: MichaelP  
Дата: 15.01.03 07:29
Оценка:
Здравствуйте, Pushkin, Вы писали:


P>У Кодта в последнем варианте, в принципе, всё правильно, но в оригинале мне всё-таки нравится больше


P>N = — log2 log2 sqrt sqrt ...N раз... 2


А я все-таки чуть-чуть раньше успел!
Автор: MichaelP
Дата: 15.01.03
Re[11]: А четыре четвёрки?
От: Багер  
Дата: 15.01.03 07:57
Оценка:
Здравствуйте, ZakkeR, Вы писали:

Здравствуйте, 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= ?
Ваша программа работает корректно? Один звонок и я всё исправлю!

Делаю потенциальные фичи :))
Re[3]: Re: Любое число тремя двойками
От: Кодт Россия  
Дата: 15.01.03 09:36
Оценка: 15 (1)
Здравствуйте, 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).

U(0) = { o(0) }
U(1) = { o(1), U(0) }
U(2) = { o(2), {o(1)}, {U(0)}, U(1) }

Построим U( ]log2 n[ ). Один из его элементов имеет мощность, равную n.
Перекуём баги на фичи!
Re[11]: А четыре четвёрки?
От: Кодт Россия  
Дата: 15.01.03 09:46
Оценка:
Здравствуйте, 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 от полученного результата.
Перекуём баги на фичи!
Re[12]: А четыре четвёрки?
От: Atilla Россия  
Дата: 15.01.03 09:54
Оценка: 1 (1)
Здравствуйте, Кодт, Вы писали:

К>Оставшуюся 4 можно куда-нибудь припахать, например, написав формулу для n+4, и явно отнять 4 от полученного результата.


можно умножить на sign(4)
... << RSDN@Home 1.0 beta 4 >>
Кр-ть — с.т.
Re[4]: Re: Любое число тремя двойками
От: mrhru Россия  
Дата: 15.01.03 09:59
Оценка:
Здравствуйте, Кодт, Вы писали:

M>>Тогда можно еще и так:


M>>def N = n //само число, тогда

M>>n = N

К>Нифига! "def" — это, считай, макрос. В твоем варианте появляются числа, тогда как в моих — их нет.


Фигушки "нифига"

"(в оригинальном решении неявно используются константы e и 1/2)" !!!

Ну да, а что мне может помешать заранее продекларировать некие обозначения для всех возможных n, а потом их и использовать.



Вообще-то все эти "безобразия" от неточности терминологии (как всегда).

К>Впрочем, можно вообще обойтись без чисел. Если привлечь теоретико-множественный аппарат.


[поскипано, но с восхищеним ]

Вспомним лямбда-исчисление?...
Евгений, с приветом
Re[5]: Re: Любое число тремя двойками
От: Кодт Россия  
Дата: 15.01.03 10:48
Оценка:
Здравствуйте, mrhru, Вы писали:

M>Вспомним лямбда-исчисление?...


Придется повыкручиваться с определением чисел.
Возможный способ — считать n = длина списка из n.

Все-таки, в теории множеств есть понятие кардинального числа — мощности множества; множество кардинальных чисел — это 0, натуральные и алефы.
В лямбда-исчислении — числа это привнесенные сущности.

В общем, дерзай.
Перекуём баги на фичи!
Re[8]: Не-а
От: =KRoN= Россия http://balancer.da.ru
Дата: 15.01.03 11:47
Оценка:
MP>>n = — log2(log2(sqrt{n}(2)))
P>О оно ! Вариант Дирака !

Э... Всё-таки 4 двойки Ещё одна неявная, в квадратном корне
...Глубина-глубина, я не твой...
Re[9]: Не-а
От: Atilla Россия  
Дата: 15.01.03 11:54
Оценка:
Здравствуйте, =KRoN=, Вы писали:

=KR>Э... Всё-таки 4 двойки Ещё одна неявная, в квадратном корне

в квадратном корне никаких двоек нет: один радикал без ничего.
... << RSDN@Home 1.0 beta 4 >>
Кр-ть — с.т.
Re[10]: Не-а
От: Micker  
Дата: 16.01.03 15:02
Оценка:
Здравствуйте, Atilla, Вы писали:

A>один радикал без ничего.


— Девушка! Скажите, вы бы могли полюбить радикала?
— Прости, ради чего?





я знаю, не к месту: здесь только серьёзные вещи обсуждают.....
Жизнь, как игра —
идея паршивая,
графика обалденная...
Re[8]: Не-а
От: Micker  
Дата: 16.01.03 15:04
Оценка:
Здравствуйте, Pushkin, Вы писали:

P>Здравствуйте, MichaelP, Вы писали:


MP>>n = — log2(log2(sqrt{n}(2)))


P>О оно ! Вариант Дирака !


Раскентуйте мне, плиз, а sqrt{n}{2} для случая n = 5555 не использует цифру пять?
Жизнь, как игра —
идея паршивая,
графика обалденная...
Re[9]: Не-а
От: Кодт Россия  
Дата: 16.01.03 15:17
Оценка:
Здравствуйте, Micker, Вы писали:

MP>>>n = — log2(log2(sqrt{n}(2)))


P>>О оно ! Вариант Дирака !


M>Раскентуйте мне, плиз, а sqrt{n}(2) для случая n = 5555 не использует цифру пять?


нет. Это означает, что в формуле написано
sqrt( sqrt( ... пять тысяч пятьсот пятьдесят пять раз прописью ... sqrt( 2 ) ... ) )
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.