ヨセフは漸化式の方法の問題を解決します

nは個々円、Mのパケットの開始パケット番号からの最初の人が殺されると、開始メッセージから、次の人:ヨセフは、問題を説明しました。だから、もう一度、(ゼロからの番号付け)を探して、最後の生存者の最後の残りの1つ。

 

 

あなたは人の一人一人に番号を殺したことを知っておく必要がある場合は、最善のアプローチは、リンクリストを使用するかもしれません。あなたが唯一の生存者の最終的な数を知る必要がある場合しかし、その後、チェーン法の時間計算量は、それがはるかに高速になります。この問題を解決するために漸化式を使用して、受け入れられません。

 

漸化式のBaiduの何を知っているが、キーは、この再帰式は、それを導出する方法ですか?

 

私たちの目的は、もちろん、生存者の最後の番号ができ、mとnのショーになりたいのですが、残念ながら直接そうすることは困難です。しかし、最初の人は、数mによって殺されることが示さおよびnは困難ではありません。それでは、どのようにそれを表現するのですか?〜ダウン見ていないバックまず、ホールドについて考えてください。

 

↓↓1光年はこちらから

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

あなたの答えは(M - 1)である場合はmod nを、あなたは正しいです!答えは理解することは難しいことではありません。

(注:modは剰余を表します。)

 

 

1つの個々の - 今、私たちは、その後、N左、人を殺さなければなりません。我々は漸化式を見ているので、あなたはn個の個別の状況とnを見つけることができるかどうか - 例個々の状況との間に1人の関係を、再帰式が出てきました。そして、ちょうど今のn残り円 - 1個別 - 1人の個人が、それは我々がn個、残りのことを分析に注力する必要があるとしていることを意味します。

 

以下に示すように殺される人々の最初の数に応じて、我々は他のものは、mおよび数によって表現Nができます。

 

私たちは誰の番号を変更してみましょう。我々は....数は、最初の人が、人は、後ろの人を、0、1、2を付け直されたことを殺さするジャーナリストの数、の最初の第二ラウンドで報告戻します。

 

 

ハハ。mが殺される報告された新聞の数、し、次の人1準備から始めてから1個人サークル、最初の人 - のn:あなたはよく見るし、問題がに変換されていません。だから、もう一度、(ゼロからの番号付け)を探して、最後の生存者の最後の残りの1つ。「Nパーソナル」に加えて - 「N 1個人」以外の、他の条件が完全に変更されません。

 

また、我々は簡単に元の数と新しい数の関係を観察することができます。人は、私は、その後、彼の昔の数は(M + I)のmod nは新しい番号であれば、それを観察するのは簡単。

 

到了现在,我们已经可以很轻松地推导出递推公式了。我们定义这样一个函数f(x,y) : f(x,y)表示当约瑟夫问题中的n = x,m = y时幸存者的编号。回到上面n - 1个人的情况,显然,幸存者的新编号就是f(n - 1,m),那么根据我们刚刚发现的新编号与旧编号之间的关系,就可以得出幸存者的旧编号是(m + f(n - 1,m)) mod n,这个不正好就是我们所寻找的递推关系嘛?

 

就讲到这里吧。至于具体如何用这个递推公式解决约瑟夫问题,太简单了,就留给你们自己想a.a

おすすめ

転載: www.cnblogs.com/ZhouYiJoe/p/12147052.html