Так. Кажется, я придумал, как объяснить эту интуицию.
См. рисунок:
Нажмите для просмотра прикрепленного файла (масштаб пропорций не выдержан, иначе пришлось бы слишком мельчить)
Идет игра до цели C. Пусть МЫ играем проив НИХ. Игра находится в некоторой промежуточной стадии, произведение в настоящий момент равно P. Ход наш. И мы думаем то, что можем думать..
Во-первых, договоримся о терминах:
начало хода - это чему равно произведение к этому ходу;
сам ход - это на что мы домножаем (от 2 до 9);
результат хода - то, что получается после умножения начала на ход.
Например, если начало хода равно 12, а наш ход равен 3, то результат нашего хода есть 36.
Допустим, что выиграть сразу одним ходом мы не можем, потому что C слишком велико. Так вот, с самого начала ясно, что нам НЕЛЬЗЯ (если, конечно, мы хотим выиграть), чтоб результат нашего хода попал в промежуток от C/9 до C, потому что они (если они не дураки) сразу смогут выиграть. Этот ПЛОХОЙ для нас интервал изображен
толстой красной линией.
Но с другой стороны, мы хотим, чтобы результат ИХ хода попал на этот участок. Желательно ЗАСТАВИТЬ их сделать такой ход. Для этого попробуем определить такой участок, любой ход с которого попадет в красный. Это сделать легко (проанализируй сам и поймешь), этот участок - от C/9/2 до C/9. Нам надо, чтобы они начинали свой ход внутри этого участка. А их начало - это наш предыдущий результат! Значит, нам надо СТРЕМИТЬСЯ попасть в этот кусок предыдущим ходом. На рисунке этот кусок изображен
толстой зеленой линией.
Таким образом, мы выяснили, что нам желательно попасть ЗА число C/9/2. Другими словами, нашей ДАЛЬНЕЙ целью все еще является C, но появилась цель поближе. Назовем ее C
1 (подразумевая, что то C было как бы C
0). То есть, C
1=C/18.
После этого мы можем абстрагироваться от дальней цели и заняться выполнением более близкой. Иными словами, теперь игра ведется не до C, а до C
1. Если мы выиграем эту игру, то мы выиграем и всю игру. И мы можем повторить все те же самые рассуждения, но теперь про C
1. И тогда мы найдем число C
2, которое снова станет нашей новой целью. А между C
2 и C
1 -
красный участок потоньше и
зеленый участок потоньше. А за ним последкет C
3 и так далее..
Так будет продолжаться до тех пор, пока текущее произведение P не попадет ЗА очередную C
i. Если оно окажется на красном куске - отлично, мы ходим так, чтобы попасть на следующий зеленый. Если нет - мы ходим как-то (при этом желательно выбрать маленький ход, чтоб затянуть игру) и хдем ИХ ошибки.
Это, так сказать, сухая теория. На практике все немного усложняется из-за того, что целые числа делятся не точно, а с остатком. Попробуй с учетом всего вышесказанного осмыслить функцию AI. Что будет неясно - задавай вопросы.