ホームページ  >  記事  >  バックエンド開発  >  単純な再帰コイン変換時のメモリエラー問題

単純な再帰コイン変換時のメモリエラー問題

WBOY
WBOY転載
2024-02-08 21:39:38445ブラウズ

単純な再帰コイン変換時のメモリエラー問題

php Xiaobian Yuzai は、単純な再帰コイン問題を解いているときに、誤って記憶エラーを起こしてしまいました。この問題には、特定の枚数のコインと目標金額が与えられ、目標金額を構成するすべての異なる組み合わせを計算する必要があります。通常、この問題を解決するには再帰を使用できますが、私の記憶違いにより、計算が正しくなくなりました。この記事では、正しい解決策を再度説明し、同様の間違いを避けるための実践的なヒントをいくつか紹介します。

質問内容

次の問題を解決しようとしています:

2 人のプレイヤーがコインの山から開始し、各プレイヤーはその山から 1 枚または 2 枚のコインを選択できます。最後のコインを取ったプレイヤーが負けとなります。

私は次のような単純な再帰実装を思いつきました。 (遊園地): ### リーリー

上記のコードは正常に動作します。

ただし、メモ化 (以下またはプレイグラウンドを参照) を実装してこのソリューションを改善すると、間違った答えが得られます。

リーリー

2 番目の実装が最初の実装とは異なる値を返す理由についてのアドバイスをいただければ幸いです。

解決策

あなたの記憶は間違っています。勝者は現在のコインの数だけでなく、誰の番かにも依存します。次のようなものが必要です:

リーリー

以上が単純な再帰コイン変換時のメモリエラー問題の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。