算数パズルしようや
■ このスレッドは過去ログ倉庫に格納されています
ある整数Nが与えられます。
「Nを、Nの各桁和か各桁積に置き換える」操作をちょうど100兆回行ったあと、N=1にできるか判定してください。
各桁和: 217→2+1+7=10
各桁積: 217→2×1×7=14
これ解けるんか? N=5 のときは、操作してもN=5から変わらないから答えはNoやな 和と積の使い分けは1にするために自分で好きに選んでいいんでしょ? >>9
ええで
たとえば11は各桁積を取り続けることで1に収束できるから、答えはYes 質問や
一桁の時どうするんや?
2のとき
和 2→2+0=2
積 2→2×0=0
って認識で合ってる? >>8
1以外の一桁になったらゲームオーバーで、掛けても足しても大体減るから何兆回も粘れないんちゃうかな
第一印象やけどな あーでも行けそうやけどな
各桁和を取った時の値の減り方がえげつないから、実質各桁積を取ったときだけ追えば良いし 積か和を都度選択して、あらゆる選択の組み合わせの中に条件を満たすものがあるかどうかの判定? >>12
一桁の数字は、各桁和も各桁積もNのままや
N=2なら、どちらの操作を選んでもN=2のままやな >>15
最初のNが1や11なら、答えはYesやな
じゃあNが42876415ならどうや? 積とると素因数が2,3,5,7だけになるのポイントそうやな 100兆回までにじゃなくてちょうど100兆回ってのが曲者やな
知らんけど >>16
そうや
最初にNが与えられるから、最も都合よく操作した時にN=1にできるか判定しろって感じ >>20
別に「ちょうど」は要らんかったわ
Nは単調減少することが示せるし 全てのNでこれが成立するのかって問いなら否
それとも成立するNをいっぱい探してみようってことなのか? あーなんか解けたなこれ
事前にN<1000くらいは小さい値から全探索しておけばいいのか 1,10,100,1000
1,11,111,1111をつくってい感じやな >>23
だいたいそんな感じや
たとえば「Nが766287459のとき、操作後1にできる?」みたいな判定問題やな >>27
競プロやなこれ
Nを指定すればよかったわ Nが123456789のとき、操作後1にできますか?
みたいな具体的な出題にすべきやったわ 多倍長整数を容認すれば、N<10^100くらいまでは解けそう
各桁積のときの収束速度をちゃんと確認しとらんから、限界は分からんが >>29
競プロになってしまったわ
オリジナル問題 10^n くらいの各桁積の最大が 9^n だから (9/10)^n くらいで落ちていくんやない? >>34
そうやな
ただ多倍長整数が絡むから実計算速度は遥かに遅そうや たくさん操作した時にN=1にできるか?
という表を下からのDPで前計算しておけば、各桁和のときはO(1)で判定可能
あとは愚直に各桁積を取り続ければいい ■ このスレッドは過去ログ倉庫に格納されています