25 июн. 2009 г.

Быки и коровы

После того, как разминка мозгов прошла более-менее успешно (хотя вторую часть теста никто так и не прошёл), можно перейти к моей любимой логической игре. Как это может пригодиться в жизни? Есть сайт, который предоставляет услуги интернет-телефонии. Раньше у них была игровая зона, где можно было заработать несколько долларов и записать их на свой счёт. Игра называлась "Быки и коровы". Условия жёсткие — надо было за 5 ходов угадать число, задуманное компьютером, хотя математики доказали, что это возможно за 7 ходов. Потом у TimePhone начался финансовый кризис, и они прикрыли эту халяву. Если всё же захотите поиграть в игру с пользой для себя, то попробуйте mnogo.ru, но для начала — задачка из моей партии.

1234 - 0 быков, 2 коровы
2356 - 0 быков, 1 корова
3178 - 1 бык, 1 корова
3047 - 1 бык, 1 корова

Какое число задумал компьютер?

28 комментариев:

  1. Анатолий25.06.2009, 12:09

    Нет, не 3094.

    ОтветитьУдалить
  2. В газетах раньше помню подобные головоломки были!

    ОтветитьУдалить
  3. К предыдущей задаче:

    2^10(mod 11)=1 => 2^30 (mod 11) = 1^3 = 1
    2^6(mod 9)=1 => 2^30 (mod 9) = 1^5 = 1

    (2^30 (mod 11)= 1) & (2^30 (mod 9) = 1) => 2^30 (mod [11,9]) =1 => 2^30 (mod 99) = 1

    /по теореме Эйлера/

    ОтветитьУдалить
  4. Анатолий26.06.2009, 13:49

    На пятом ходу отгадать трудно - должно быть везение. Есть несколько вариантов, например, 3901.

    ОтветитьУдалить
  5. Про быков и коров интересная задачка, признаться честно - первый раз о такой слышу. Ну и мои варианты:
    1072
    2071
    2107
    2748
    3489
    3894
    3901
    3910
    3984
    4157
    4167
    7145
    7146
    7248
    9348

    ОтветитьУдалить
  6. Анатолий26.06.2009, 14:06

    Tulvit, программу надо подправить.
    1072 не может быть. 1 не может быть на первом месте, так как 1234 - 2 коровы.

    ОтветитьУдалить
  7. Игорёк26.06.2009, 14:07

    Автор, ты мне мозг сломал, блин!

    ОтветитьУдалить
  8. Анонимный26.06.2009, 14:11

    Было бы че ломать!

    ОтветитьУдалить
  9. Да, не прав. Я сначала искал все 4-х значные числа без повторяющихся цифр, потом отсеивал по "коровам", и в самом конце по "быкам" из двух последних условий, а надо было по "быкам" из всех четырех условий проверить. Недочет, причем явный и грубый.

    ОтветитьУдалить
  10. Тулвит, скинь поажлуйста код программы. Интересно посмотреть.

    ОтветитьУдалить
  11. Анонимный26.06.2009, 14:56

    Я так и не понял, в чем РЕАЛЬНАЯ практическая польза игры, кроме денег, которые и ТО УЖЕ НЕ ВЫДАЮТ?

    ОтветитьУдалить
  12. Прога жутко корявая /думал напишу строк на 20, поэтому с "правильным" кодом не заморачивался, но вышло строк 100 непонятного бреда, плюс писал в блокноте, скобки не подсвечивались и я в них в итоге запутался когда пытался переделать и сейчас она не работает/. Писал на пхп, т.е. там в начале используются встроенные функции, хотя думаю в других языках есть аналогичные альтернативы, изначально хотел на с++ писать, но потом передумал. Могу расписать на словах алгоритм работы. Ну или если очень нужен исходник, то в комменте выложу через пару часиков - но это будет так сказать наглядный пример как не надо кодить, куча вложенных if-ов и while-ов и прочей атрибутики было кодинга.

    ОтветитьУдалить
  13. /в чем РЕАЛЬНАЯ практическая польза
    Разминка мозгов. РЕАЛЬНАЯ практическая польза.

    ОтветитьУдалить
  14. Попытка угадать ответы №2
    3489
    3901
    3910
    4167
    7145

    ПС
    БегемотЙа, код в комменты не вставляется, оставь куда скидывать исходник, только сразу предупреждаю - это быдло код, он заканчивается }}}}}}}}}, хотя вместо вложенных операторов условного перехода и цикла можно было бы сделать функции и поиграться с аргументами и возвращаемыми значениями.

    ОтветитьУдалить
  15. tulvit, молодец !

    ОтветитьУдалить
  16. Анонимный26.06.2009, 21:18

    Ну пипец вы развели тут ))) Пошел за попкорном.

    ОтветитьУдалить
  17. Анонимный26.06.2009, 23:40

    а мой подбор даёт такие возможные варианты:

    4127
    4187
    4197
    7142
    7148
    7149
    7948
    8127
    8142
    8147
    8149
    8197
    9127
    9142
    9147
    9148
    9187
    9748

    ОтветитьУдалить
  18. Странно как такое могло получиться, вроде ни одного правильного ответа, либо условия не правильно ввел, либо с цифрами где-то ошибся.

    ОтветитьУдалить
  19. Анатолий27.06.2009, 14:22

    Я всегда подозревал, что человек и комп мыслят по разному.

    ОтветитьУдалить
  20. У меня два варианта: 3491 или 3419 :)

    ОтветитьУдалить
  21. Анатолий01.07.2009, 08:35

    1000 команд - это разумный верхний предел сложности задач. "ДЖОН ФОН НЕЙМАН"

    ОтветитьУдалить
  22. Хм… По-моему в данном сообщении нет никакой логики..

    ОтветитьУдалить
  23. Анатолий18.07.2009, 09:53

    Женской логики тут точно нет.

    ОтветитьУдалить
  24. Анонимный07.12.2009, 19:53

    1075 3419 3491 3809 3890 3914
    3980 5071 6071 8072 9038
    только эти варианты

    ОтветитьУдалить
  25. Анонимный14.01.2010, 17:26

    0127
    3489
    3901
    3910
    4167
    7145

    ОтветитьУдалить