|
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.
Где голосовалка? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |