?

Log in

две задачки (математическое) - Поклонник деепричастий [entries|archive|friends|userinfo]
Anatoly Vorobey

[ website | Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Links
[Links:| English-language weblog ]

две задачки (математическое) [ноя. 9, 2011|12:13 am]
Anatoly Vorobey
1. Используя только цифры 1,5,6,7, четыре арифметических действия и, если нужно, скобки, напишите выражение, результат которого равен 21. Вместе соединять цифры, т.е. например, использовать число 15, нельзя. Использовать цифры можно в любом порядке, но каждую не более одного раза.

2. Используя только цифры 2,2,2 (три двойки), а также математическую нотацию из стандартной школьной программы, выразите любое целое число. Нельзя использовать стандартные константы (например, числа пи или е). Из цифр - в любом месте выражения - можно использовать только эти три двойки.

Комментарии я скрывать не буду, так что не заглядывайте, если хотите сами решить.

Еще, на мой взгляд, написать программу для решения первой задачи может быть неплохим заданием для программиста на интервью. Если вы программист, подумайте, как бы вы это написали, и сколько времени у вас это займет?
СсылкаОтветить

Comments:
Страница 1 из 2
<<[1] [2] >>
(Скрытый комментарий)
[User Picture]From: avva
2011-11-08 10:26 pm
Молодец!

В первой задаче, однако, можно пользоваться только действиями +-*/.
(Ответить) (Parent) (Thread)
[User Picture]From: webface
2011-11-08 10:32 pm
1. (7-5+1)* 6 + 1 + 1 + 1

2. Т.е. нужно составить формулу для нахождения любого целого числа в R с помощью двоек?
(Ответить) (Thread)
[User Picture]From: braindancer
2011-11-08 10:50 pm
1. Я полагаю, использовать одну и ту же цифру несколько раз нельзя? Иначе решение было бы тривиально 1 + 1 + 1 + ... + 1 (21 раз).
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: spamsink
2011-11-08 10:32 pm
1. Я ее написал очень давно. :) Кстати о 15, выразить это число с помощью 1,5,6,7 без соединения цифр тоже непросто.

2. Привет Якову Исидорычу.
(Ответить) (Thread)
[User Picture]From: gdt
2011-11-08 11:43 pm
+1 к 2.
(Ответить) (Parent) (Thread)
[User Picture]From: xxqs
2011-11-08 10:34 pm
(5*6)-7-1-1
(Ответить) (Thread)
[User Picture]From: penguinny
2011-11-08 10:38 pm
1) Можно ли использовать числа по несколько раз? Т.е. 6*7/(1+1) или 6*7/(7-5) - это решения или нет?
(Ответить) (Thread)
[User Picture]From: trurle
2011-11-08 10:46 pm
A 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1?
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: michk
2011-11-08 10:41 pm
Что-то я не понимаю условие второй задачи. Как например получить 15?
(Ответить) (Thread)
[User Picture]From: avva
2011-11-08 10:53 pm
Трудно ответить на этот вопрос, не дав понятия о решении всей задачи.
(Ответить) (Parent) (Thread)
[User Picture]From: scolar
2011-11-08 10:47 pm
В первой задаче порядок чисел фиксирован или произволен?
(Ответить) (Thread)
[User Picture]From: avva
2011-11-08 10:52 pm
Произволен.
(Ответить) (Parent) (Thread)
(Скрытый комментарий)
[User Picture]From: avva
2011-11-08 11:06 pm
:)
(Ответить) (Parent) (Thread)
[User Picture]From: psilogic
2011-11-08 11:01 pm
Судя по всему каждую цифру-число можно использовать 1 раз, иначе ответ был бы прост. Так что решение - простой перебор поочередно цифр и действий с отмечанием (и неповторенем) цифр, которые уже использовались, плюс несколько вариантов порядка действий. Многократно вложенный цикл - самое дешевое решение в смысле времени программирования.
(Ответить) (Thread)
[User Picture]From: avva
2011-11-08 11:07 pm
Как вы предлагаете организовать "несколько вариантов порядка действий"?
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: konaire
2011-11-08 11:08 pm
Во второй задаче абстрактными обозначениями пользоваться можно? Что входит в "школьную" нотацию? Скажем, можно выразить любое положительное целое число через sum(n=2;n=k) [2/2]?
(Ответить) (Thread)
[User Picture]From: avva
2011-11-08 11:13 pm
Можно пользоваться абстрактными обозначениями, но для того, чтобы ваше решение работало, вам придется для каждого конкретного числа написать цифрами верхнюю границу суммы - а этих цифр у вас нет.
(Ответить) (Parent) (Thread) (Развернуть)
(Скрытый комментарий)
(Скрытый комментарий)
(Скрытый комментарий)
[User Picture]From: dazor
2011-11-08 11:16 pm
Первый пример простой: (5-1)*7-6

Вторым заниматься не могу - не наю, что такое математическая нотация.
(Ответить) (Thread)
[User Picture]From: deemon
2011-11-08 11:17 pm
лол 22
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: ovgolovin
2011-11-08 11:28 pm
Накидал небольшой скриптик: http://codepad.org/2QkvjJfB (permutations - это копи-паст, в новой версии Питона это уже в библиотеках, а там на сайте не самая свежая версия).

Результата тем не менее не получил.
(Ответить) (Thread)
[User Picture]From: ovgolovin
2011-11-08 11:46 pm
Хм. Даже ошибку нашел (арифметические операции могут повторяться) http://codepad.org/dQrCiwCV.
Но все равно не решается. :(
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: alsterellie
2011-11-08 11:40 pm
2. Имеется в виду любое число из Z?
(Ответить) (Thread)
[User Picture]From: avva
2011-11-08 11:57 pm
ага.
(Ответить) (Parent) (Thread)
[User Picture]From: izblank
2011-11-08 11:40 pm
7*6/sqrt(5-1)
(Ответить) (Thread)
[User Picture]From: deemon
2011-11-08 11:45 pm
ну блин я расстроюсь, если это правильное решение, про символы квадратного корня ничего не сказано в условии
(Ответить) (Parent) (Thread) (Развернуть)
(Скрытый комментарий)
[User Picture]From: deemon
2011-11-08 11:48 pm
!!!!!!!!!!!!!!! mind = blown
(Ответить) (Parent) (Thread)
[User Picture]From: spartach
2011-11-08 11:48 pm
gaz_v_pol несколько лет назад придумал потрясающее усиление 2. — оказывается, для того, чтобы выразить произвольное целое число (по крайней мере большее 2), достаточно всего одной цифры 2 и школьных функций!

Придумать способ, если поверить в такую возможность, вполне реально, на московской олимпиаде многие справились.
(Ответить) (Thread)
[User Picture]From: gaz_v_pol
2011-11-09 04:12 am

Тригонометрическое решение, использующее всего одну д

О, надо же, ты помнишь мою задачу, приятно! Да, действительно, любое натуральное число можно получить из одной двойки, если к ней разрешено применять тригонометрические и обратные тригонометрические функции. Можно именно точно получить (т.е. без использования функций "целая часть" и "дробная часть"). Я давал об этом задачу на Московской олимпиаде школьников по математике. Если интересно посмотреть решение, номер 3 в 10 классе за 2010 год, см. http://olympiads.mccme.ru/mmo/2010/solutions.pdf. Решило 22 школьника.

Для тех, кто не верит. Ниже пример, как получить 5, используя всего одну двойку.



Вот проверяющий код в Maple и результат его исполнения:

simplify(cot(arctan(sin(arctan(sin(arctan(sin(arctan(sin(arctan(sin(arctan(sin(arctan(sin(arctan(sin(arctan(sin(arctan(sin(arctan(sin(arctan(sin(arctan(sin(arctan(sin(arctan(sin(arctan(sin(arctan(sin(arctan(sin(arctan(sin(arctan(sin(arctan(cos(arctan(2)))))))))))))))))))))))))))))))))))))))))))));

(Ответить) (Parent) (Thread)
(Скрытый комментарий)
[User Picture]From: avva
2011-11-09 12:02 am
Да, все верно, уважаемый аноним.
(Ответить) (Parent) (Thread)
[User Picture]From: ok_66
2011-11-09 12:44 am
Вторая была в сборнике "Физики продолжают шутить" (с решением)
(Ответить) (Thread)
[User Picture]From: ok_66
2011-11-09 12:48 am

Алиментарно, Прохватсон!

(6/sqrt(5-1))*7
(Ответить) (Thread)
[User Picture]From: begemotv2718
2011-11-09 12:54 am
По правде говоря получилось только с целочисленным делением ((6/(-5))-1)*(-7).
Второй не интересно, все знают про log_2(log(2)/log sqrt(sqrt(sqrt...2))
(Ответить) (Thread)
[User Picture]From: orazaro
2011-11-09 01:03 am
решение первой: -6 / ( ( 5 / 7 ) - 1 )

вычислил прямым перебором
(Ответить) (Thread)
From: Dmitriy Mandel
2011-11-09 01:04 am
(1-.5)*6*7
или
1*.5*6*7
или
.5*.6*7/.1
годятся?

После того как перебор в Питоне не обнаружил 21, я решил, что надо попробовать добавить к рецептуре несколько "." :)
(Ответить) (Thread)
[User Picture]From: avva
2011-11-09 05:19 am
не, точки нельзя.
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: prosto_tak
2011-11-09 01:09 am
6/(1-5/7)
In my better days would probably take 20 min to code...

The second one is well known, but non-trivial.
(Ответить) (Thread)
[User Picture]From: lrudman
2011-11-09 01:23 am
к 1-ой задаче: 6/(1-5/7)
программу писать лень. скетч: это должен быть рекурсивный перебор, применяемый ко всем парам "подмножество - дополнение" и к операциям "+", "-", "х", "x/" и "/х", применяемым к (рекурсивно) получаемым результатам по подмножествам; приходится рассматривать два деления, поелику деление не коммутативно.

Но это неинтересно.
Намного интереснее, как сообразить БЕЗ программам.
Очевидно (достаточно "окинуть мысленным взором"), что в рамках Z задача не решается. После этого становится ясным, что последней выполняемой операцией должно быть деление, и что в числителе должно стоять не 5 (иначе результат делился бы на 5. После этого остаётся уже простой перебор.
(Ответить) (Thread)
(Удалённый комментарий)
Страница 1 из 2
<<[1] [2] >>