|   |   | 
| 
 | OFF: Задача про 3 числа... | ☑ | ||
|---|---|---|---|---|
| 0
    
        Said_We 09.12.22✎ 13:29 | 
        Пятница....
 Необходимо отгадать трехзначное число. В котором цифры в числе не повторяются. Предварительно было совершено несколько попыток: 196 результат 1:0 463 результат 1:0 951 результат 2:1 738 результат 1:0 где 1:0 означает что одно число угадано и ноль на месте, 2:1 - два числа угаданы и одно на месте. | |||
| 1
    
        mikecool 09.12.22✎ 13:33 | 
        быки-коровы на марше )     | |||
| 2
    
        PR 09.12.22✎ 13:33 | 
        Не число угадано, а цифра     | |||
| 3
    
        Said_We 09.12.22✎ 13:33 | 
        (1) Там четыре числа. :-)     | |||
| 4
    
        mikecool 09.12.22✎ 13:33 | 
        (0) в попытках нет ошибки?     | |||
| 5
    
        Said_We 09.12.22✎ 13:34 | 
        (2) Да... Но я думаю все поймут.     | |||
| 6
    
        mikecool 09.12.22✎ 13:34 | 
        593?     | |||
| 7
    
        PR 09.12.22✎ 13:34 | 
        (5) bolobol не поймет     | |||
| 8
    
        PR 09.12.22✎ 13:35 | 
        (6) Во втором результате противоречие     | |||
| 9
    
        Said_We 09.12.22✎ 13:35 | 
        (6) Если 593, то в попытке 463 дало бы в 1:1, а там 1:0.     | |||
| 10
    
        mikecool 09.12.22✎ 13:36 | 
        (9) 359 или 395     | |||
| 11
    
        PR 09.12.22✎ 13:37 | 
        (10) 359
 395 не подходит | |||
| 12
    
        Said_We 09.12.22✎ 13:37 | 
        (11) УГУ     | |||
| 13
    
        YFedor 09.12.22✎ 13:37 | 
        Что такое "одно на месте"?     | |||
| 14
    
        mikecool 09.12.22✎ 13:37 | 
        (11) да 359, пересчитал )     | |||
| 15
    
        PR 09.12.22✎ 13:37 | 
        (13) О, я же говорил     | |||
| 16
    
        Оболтус 09.12.22✎ 13:38 | 
        658     | |||
| 17
    
        CaptanG гуру 09.12.22✎ 13:39 | 
        541 или 359     | |||
| 18
    
        vdementiev 09.12.22✎ 13:39 | 
        359, однако ...     | |||
| 19
    
        CaptanG гуру 09.12.22✎ 13:40 | 
        А не 541 не подходит остается 359     | |||
| 20
    
        PR 09.12.22✎ 13:41 | 
        (16) (17) Как вы находите неправильные варианты?
 Они же не проходят проверку | |||
| 21
    
        Said_We 09.12.22✎ 13:43 | 
        (20) Такое бывает. Внимательность подводит. По правилам игры в Быки-Коровы кто ошибся в сообщении результата, тот проиграл. Но такое случается. Цифр в числе 4, а не три - сложнее.     | |||
| 22
    
        Оболтус 09.12.22✎ 13:44 | 
        (16)А, не. 359 вроде )     | |||
| 23
    
        1Сергей 09.12.22✎ 14:06 | 
        541     | |||
| 24
    
        1Сергей 09.12.22✎ 14:08 | 
        (23) вижу, не подходит. соррян     | |||
| 25
    
        1Сергей 09.12.22✎ 14:09 | 
        видимо, только 359     | |||
| 26
    
        1Сергей 09.12.22✎ 14:30 | 
        Решение
 1) 463 результат 1:0 951 результат 2:1 т.к. цифры не повторяются, а в первом случае есть одно совпадение, а втором два, то в искомом числе возможны цифры только из списка: 1,3,4,5,6,9 Сразу отметаем 0,2,7,8 2) 738 результат 1:0 7 и 8 нет, значит в искомом числе точно есть 3 3) 463 результат 1:0 Мы знаем что точно есть 3, а тут одно совпадение, значит точно нет 4 и 6. Возможны 2 цифры только из списка: 1,5,9 и точно есть 3 4) 196 результат 1:0 В данной проверке есть 1 и 9, а результат одно совпадение, значит в иском числе может быть либо 1, либо 9. Но не вместе 1 и 9 а т.к. у нас точно есть 2 цифры из 1,5,9, значит точно есть 5 5) 463 результат 1:0 738 результат 1:0 т.к. на втором и третьем месте тройки совпадения по позиции нет, значит тройка точно на первом месте. 3ХХ Остаются варианты: 351 359 395 315 6) 951 результат 2:1 не подходит 351, иначе был бы результат 2:2 не подходит 395, иначе был бы результат 2:0 не подходит 315, иначе был бы результат 2:0 7) Остается один возможный вариант 359 | |||
| 27
    
        Kassern 09.12.22✎ 14:37 | 
        (26) когда вы успеваете работать?)     | |||
| 28
    
        mikecool 09.12.22✎ 15:18 | 
        (26) это ты для @balabol ?     | |||
| 29
    
        bolobol 09.12.22✎ 16:04 | 
        (28) Я не вдумывался, думать - это не моё)), но описание решение логической задачи - на пять с плюсом!     | |||
| 30
    
        bolobol 09.12.22✎ 16:04 | 
        Интересно, если ли математическое решение...     | |||
| 31
    
        bolobol 09.12.22✎ 16:10 | 
        (21) Помнится, что любая партия быки-коровы решается за 8 ходов, если начинать с комбинаций 1234, 5678, 90??     | |||
| 32
    
        Грю 09.12.22✎ 16:33 | 
        (0) 359 ?     | |||
| 33
    
        Said_We 09.12.22✎ 18:03 | 
        (31) Или с первого числа :-)     | |||
| 34
    
        bolobol 09.12.22✎ 18:28 | 
        (33) ...какого месяца?     | |||
| 35
    
        Said_We 09.12.22✎ 18:39 | 
        (34) Вы же поняли о чем я. :-)
 Нельзя быть таким, извините за формулировку - занудливым. Как говорил наш полковник - "Будьте проще и люди к вам потянуться". Дайте шанс людям ошибаться. | |||
| 36
    
        bolobol 09.12.22✎ 18:47 | 
        (35) Я не понял о чём вы ни в (33), ни в (35). Но если юмор - это не Ваше, то прямо спрошу: - что имелось в виду в (33) ?     | |||
| 37
    
        bolobol 09.12.22✎ 18:56 | 
        Хотя, чего-то действительно важного ожидать не стоит, судя по тому, что к (2) Вы не прислушались, и явно в (33) такая же ситуация: "я думаю все поймут". Закроем вопрос))     | |||
| 38
    
        Said_We 09.12.22✎ 21:17 | 
        (37) А ответ на (2) в (5) вам по фигу? :-) Лишь бы по возмущаться. :-) Как вам сложно жить... :-)     | |||
| 39
    
        ДедМорроз 09.12.22✎ 22:07 | 
        Function Compare(i1,i2,i3,j1,j2,j3):
 Hi=0 If i1==j1 or i1==j2 or i1==j3: Hi=Hi+1 If i2==j1 or i2==j2 or i2==j3: Hi=Hi+1 If i3==j1 or i3==j2 or i3==j3: Hi=Hi+1 Lo=0 If i1==j1: Lo=Lo+1 If i2==j2: Lo=Lo+1 If i3==j3: Lo=Lo+1 Return Hi*10+Lo End For i=100 to 999: Qd1=i%10 j=(i-d1)/10 d2=j%10 j=(j-d2)/10 d3=j%10 If ď1!=d2 and d1!=d3 and ď2!=d3: If Compare(d1,d2,d3,1,9,6)==10: If Compare(d1,d2,d3,4,6,3)==10: If Compare(d1,ď2,d3,9,5,1)==20: If Compare(d1,d2,d3,7,3,8)==10: Out d1,ď2,ď3 Next | |||
| 40
    
        Said_We 10.12.22✎ 02:47 | 
        (39) Там 2:1, а не 2:0. Вот это условие поправить надо "If Compare(d1,ď2,d3,9,5,1)==20".
 Но по сути да - простая генерация всех вариантов и отбрасывание не нужных. | |||
| 41
    
        Garykom гуру 10.12.22✎ 05:48 | 
        351     | |||
| 42
    
        Garykom гуру 10.12.22✎ 05:49 | 
        (41) *359 т.е.     | |||
| 43
    
        Грю 11.12.22✎ 03:34 | 
        Решение на JS:
 const input = ` 196 результат 1:0 463 результат 1:0 951 результат 2:1 738 результат 1:0 `; const parsed = input .split('\n') .map(row => row.trim()) .filter(Boolean) .map(row => row.split(' результат ')) .map(row => [ row[0], ...row[1].split(':') ]) .map(([ number, cows, bulls ]) => ({ digits: String(number).split(''), bulls: Number(bulls), cows: Number(cows) })); [ ...Array(1000) ].map((_, number) => { const digitsToTest = String(number).padStart(3, '0').split(''); const found = parsed.map(inputRow => { const bullsCows = inputRow.digits.reduce((acc, inputDigit, index) => { const isBull = digitsToTest[index] === inputDigit; const isCow = digitsToTest.includes(inputDigit); return { cows: acc.cows + (isCow ? 1 : 0), bulls: acc.bulls + (isBull ? 1 : 0) } }, { cows: 0, bulls: 0 }); return bullsCows.bulls === inputRow.bulls && bullsCows.cows === inputRow.cows; }); return { found, number }; }, ).filter(item => item.found.every(_ => _)).map(item => item.number); Результат: [359] | |||
| 44
    
        Прохожий 11.12.22✎ 12:59 | 
        359. 
 Где голосовалка? | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |