Re[2]: Девять девяток
От: conraddk Россия  
Дата: 13.09.04 14:28
Оценка:
Здравствуйте, conraddk, Вы писали:

C>Может быть, 257? У меня такой результат получился. Но при расчетах не использовались дробные промежуточные результаты деления

C>Кто может разложить это число?
C>Для всех до 257 у меня есть готовые разложения, могу выложить
Нашел Дробные промежуточные результаты нельзя выкидывать.
257 = 99-(9+9)*(((9+9)/(9*9))-9)
Д.К. << RSDN@Home 1.1.4 beta 2>> слушаем silent
Все на свете должно происходить медленно и неправильно...
Re[3]: Девять девяток
От: What Беларусь  
Дата: 13.09.04 14:32
Оценка: -2
Здравствуйте, conraddk, Вы писали:

C>>Может быть, 257? У меня такой результат получился. Но при расчетах не использовались дробные промежуточные результаты деления

C>>Кто может разложить это число?
C>>Для всех до 257 у меня есть готовые разложения, могу выложить
C>Нашел Дробные промежуточные результаты нельзя выкидывать.
C>257 = 99-(9+9)*(((9+9)/(9*9))-9)

99-(9+9)*(((9+9)/(9*9))-9) = 261

Действительно, минимальное число = 257
Автор: What
Дата: 13.09.04
... << RSDN@Home 1.1.4 beta 2 >>
Re[4]: Девять девяток
От: conraddk Россия  
Дата: 13.09.04 14:55
Оценка:
Здравствуйте, What, Вы писали:

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


C>>>Может быть, 257? У меня такой результат получился. Но при расчетах не использовались дробные промежуточные результаты деления

C>>>Кто может разложить это число?
C>>>Для всех до 257 у меня есть готовые разложения, могу выложить
C>>Нашел Дробные промежуточные результаты нельзя выкидывать.
C>>257 = 99-(9+9)*(((9+9)/(9*9))-9)

W>99-(9+9)*(((9+9)/(9*9))-9) = 261

Как это?
99-(9+9)*(((9+9)/(9*9))-9) =
99-18*(18/81-729/81) =
99-18*(-79/9)=
99+158=
257
Д.К. << RSDN@Home 1.1.4 beta 2>> слушаем silent
Все на свете должно происходить медленно и неправильно...
Re[5]: Девять девяток
От: conraddk Россия  
Дата: 13.09.04 15:00
Оценка:
Здравствуйте, conraddk, Вы писали:

Новый кандидат — 430.
Кто возьмется его разломать?
Д.К. << RSDN@Home 1.1.4 beta 2>> слушаем silent
Все на свете должно происходить медленно и неправильно...
Re[5]: Девять девяток
От: What Беларусь  
Дата: 13.09.04 15:34
Оценка: +1
Здравствуйте, conraddk, Вы писали:

W>>99-(9+9)*(((9+9)/(9*9))-9) = 261

C>Как это?
C>99-(9+9)*(((9+9)/(9*9))-9) =
C>99-18*(18/81-729/81) =
C>99-18*(-79/9)=
C>99+158=
C>257

Согласен. Просто считал в целых числах
Я когда решал, считал, что деление допустимо, только когда числа делятся нацело. Тогда ответ = 257.
Если же допускать работу с рациональными дробями, как у Вас в примере, то ответ = 430.
... << RSDN@Home 1.1.4 beta 2 >>
Re[6]: Девять девяток
От: conraddk Россия  
Дата: 13.09.04 15:44
Оценка:
Здравствуйте, What, Вы писали:

W>Согласен. Просто считал в целых числах

W>Я когда решал, считал, что деление допустимо, только когда числа делятся нацело. Тогда ответ = 257.
W>Если же допускать работу с рациональными дробями, как у Вас в примере, то ответ = 430.
Да, похоже на то.
Д.К. << RSDN@Home 1.1.4 beta 2>> слушаем silent
Все на свете должно происходить медленно и неправильно...
ПОЛЬЗУЙТЕСЬ ПОИСКОМ!
От: Блудов Павел Россия  
Дата: 14.09.04 01:55
Оценка:
Здравствуйте, brainhaze, Вы писали:

B>Несколько лет назад увидел объявление о приеме на работу: всякий, предложивший решение на нижеследующую задачу (математическое или программное), будет безоговорочно принят. Так вот она, задача:


B>Назовите наименьшее целое число, которое нельзя выразить девятью девятками. Возможно использование арифметических операций (+, -, *, /) и скобок «(» и «)» для выражения чисел.


Баян двухлетней давности:
http://rsdn.ru/Forum/Message.aspx?mid=21139
Автор: Финченко Юрий
Дата: 11.01.02


Правильный ответ 195
... << RSDN@Home 1.1.4 beta 2 >>
Re: Девять девяток
От: E-art Украина  
Дата: 14.09.04 04:53
Оценка:
А по-моему логика такая: пытаемся представить с помощью 9 девяток самое маленькое возможное целое число. Все числа меньше него будут удовлетворять условию (в смысле их нельзя будет представить с помощью 9 девяток).
Re[2]: Девять девяток
От: Satrapp Россия  
Дата: 14.09.04 06:16
Оценка:
Здравствуйте, E-art, Вы писали:

EA>А по-моему логика такая: пытаемся представить с помощью 9 девяток самое маленькое возможное целое число. Все числа меньше него будут удовлетворять условию (в смысле их нельзя будет представить с помощью 9 девяток).


0 = (9-9)*9999999
1 = 9/9 + (9-9)*99999
...
... << Rsdn@Home 1.1.4 beta 1 >> В winamp'е зажигает Overture
Re: ПОЛЬЗУЙТЕСЬ ПОИСКОМ!
От: Laurel  
Дата: 14.09.04 06:29
Оценка: 10 (1) +1
Здравствуйте, Блудов Павел, Вы писали:

БП>Баян двухлетней давности:

БП>http://rsdn.ru/Forum/Message.aspx?mid=21139
Автор: Финченко Юрий
Дата: 11.01.02


БП>Правильный ответ 195


Боюсь, неправильный
195 = 99+99-(9+9)/9-9/9
... << RSDN@Home 1.1.3 stable >>
Re: Девять девяток
От: IO Украина  
Дата: 14.09.04 08:24
Оценка:
Здравствуйте, brainhaze, Вы писали:

B>Несколько лет назад увидел объявление о приеме на работу: всякий, предложивший решение на нижеследующую задачу (математическое или программное), будет безоговорочно принят. Так вот она, задача:


А что за контора? И если будет аналитическое короткое решение, то они сейчас примут на работу?
Re: Девять девяток
От: _McSIMM Россия  
Дата: 14.09.04 10:47
Оценка:
Здравствуйте, brainhaze, Вы писали:

Не в качестве ответа, а так...
40 разложите кому не лень
Re[2]: ПОЛЬЗУЙТЕСЬ ПОИСКОМ!
От: Блудов Павел Россия  
Дата: 14.09.04 10:59
Оценка:
Здравствуйте, Laurel, Вы писали:

БП>>Правильный ответ 195

L>Боюсь, неправильный
L>195 = 99+99-(9+9)/9-9/9

Точно. очепятка в коде. Вместо

        if (iFract[1].m_nNumerator != iFract[0].m_nNumerator + 1)
        {
            printf("number %d\n", iFract[0].m_nNumerator + 1);
            break;
        }


должно быть

        if (iFract[1].m_nNumerator != iFract[0].m_nNumerator + 1)
        {
            printf("number %d\n", iFract[1].m_nNumerator + 1);
            break;
        }


Так что правильный ответ 196. Звиняйте
... << RSDN@Home 1.1.4 beta 2 >>
Re[3]: ПОЛЬЗУЙТЕСЬ ПОИСКОМ!
От: Neo09 Россия  
Дата: 14.09.04 11:10
Оценка:
Здравствуйте, Блудов Павел, Вы писали:

БП>Здравствуйте, Laurel, Вы писали:


БП>>>Правильный ответ 195

L>>Боюсь, неправильный
L>>195 = 99+99-(9+9)/9-9/9

БП>Так что правильный ответ 196. Звиняйте


Не знаю, моя прога нашла для него разложение:

(99+99+(9-9-9-9)/9) = 196
Re[2]: Девять девяток
От: Neo09 Россия  
Дата: 14.09.04 11:13
Оценка:
Здравствуйте, _McSIMM, Вы писали:

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


_MS>Не в качестве ответа, а так...

_MS>40 разложите кому не лень

Пожалуйста:

(9+9+(99+99-9+9)/9) = 40
Re[3]: ПОЛЬЗУЙТЕСЬ ПОИСКОМ!
От: Блудов Павел Россия  
Дата: 14.09.04 11:14
Оценка:
Здравствуйте, Блудов Павел, Вы писали:

БП>Точно. очепятка в коде. Вместо


Мда... Ошибочка вышла. Нету там опечятки. Проблема в моей голове.

нужно после
    vectIterations[0].push_back(thetype_t::value_type(9, 1));


добавить
    vectIterations[1].push_back(thetype_t::value_type(99, 1));
    vectIterations[2].push_back(thetype_t::value_type(999, 1));
    vectIterations[3].push_back(thetype_t::value_type(9999, 1));
    vectIterations[4].push_back(thetype_t::value_type(99999, 1));
    vectIterations[5].push_back(thetype_t::value_type(999999, 1));
    vectIterations[6].push_back(thetype_t::value_type(9999999, 1));
    vectIterations[7].push_back(thetype_t::value_type(99999999, 1));
    vectIterations[8].push_back(thetype_t::value_type(999999999, 1));


А иначе из двух 9-ок у меня 99 никак не получится.

Новый ответ 430.
... << RSDN@Home 1.1.4 beta 2 >>
Re[4]: ПОЛЬЗУЙТЕСЬ ПОИСКОМ!
От: Блудов Павел Россия  
Дата: 14.09.04 11:15
Оценка:
Здравствуйте, Neo09, Вы писали:

N>(99+99+(9-9-9-9)/9) = 196

тут
Автор: Блудов Павел
Дата: 14.09.04
... << RSDN@Home 1.1.4 beta 2 >>
Re[4]: 430!
От: conraddk Россия  
Дата: 14.09.04 11:34
Оценка:
Здравствуйте, Блудов Павел, Вы писали:

БП>Новый ответ 430.

Ура, похоже нашли правильное решение. Вряд ли трое сразу ошиблись
Re[5]: Девять девяток
Автор: conraddk
Дата: 13.09.04

Re[5]: Девять девяток
Автор: What
Дата: 13.09.04

Re[3]: ПОЛЬЗУЙТЕСЬ ПОИСКОМ!
Автор: Блудов Павел
Дата: 14.09.04

Д.К. << RSDN@Home 1.1.4 beta 2>> слушаем silent
Все на свете должно происходить медленно и неправильно...
Re: Девять девяток
От: Less  
Дата: 14.09.04 17:01
Оценка:
Мдя. Задача простенькая. Я свел ее к обратной польской нотации. Пришлось добавить один дополнительный оператор для связки цифр (типа 99, 999, ...). А дальше все вообще просто — строим комбинаторные варианты польских нотаций, простенькая рекурсия и вуаля.

Процесс перебора всех конечных вариантов длился около 15 минут. Что интерестно, около половины из них — целые числа (я думал, значительно меньше, так как имеем операцию деления).
Нашло 17366 уникальных >= 0 чисел.

Первый пробел — при 393. Второй — 402. Третий — 430.

Гм. Я так вижу, что 3 человек уверены что 430 — первый пробел, а не 3-й. Значит у меня глюк где-то небольшой — видимо пропускаю возможные варианты.

Буду очень признательным если увижу расклады для 393 или 402 (лучше оба сразу )

Аналитически решать не пробовал — лень, если честно.

Если кому нужно решение или таблица с вариантами, мылите на less@ua.fm.

Позже когда время появится и будут желающие, накатаю доку по решению.


Regards
Re[2]: Девять девяток
От: Блудов Павел Россия  
Дата: 15.09.04 02:22
Оценка:
Здравствуйте, Less, Вы писали:

L>Буду очень признательным если увижу расклады для 393 или 402 (лучше оба сразу )


393 = (9+((9+9)*(9+((999/9)/9))))
402 = ((9+9)*(9+((9+(999/9))/9)))

Похоже, у Вас проблемы с хранением дробей. Я храню как числитель и знаменатель. Оба числа целые.

У меня общее количество циферь 17408. Могу выложить весь список (620kb)
... << RSDN@Home 1.1.4 beta 2 >>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.