ホームページ > バックエンド開発 > C++ > 1 を N に変換する最小コスト。X を掛けるか数値を右回転することで達成できます。

1 を N に変換する最小コスト。X を掛けるか数値を右回転することで達成できます。

WBOY
リリース: 2023-09-12 20:09:07
転載
737 人が閲覧しました

1 を N に変換する最小コスト。X を掛けるか数値を右回転することで達成できます。

次の手法を使用して、X を乗算するか、その数値を 1 から N まで右回転する最も安価な方法を見つけることができます。初期の最小コストを監視するには、コスト変数を作成します。 N から 1 に移行する場合、各段階で N が X で割り切れるかどうかを確認します。そうであれば、N を X で割って更新し、プロセスを続行します。 N が X で割り切れない場合は、N の桁を右にループして値を増やします。この場合、コスト変数を追加します。最終的なコスト変数の値は、1 を N に変えるために必要な最小量になります。このアルゴリズムは、数値の回転または乗算を使用して、目的の変換を実行するために必要な最小限の演算を効率的に決定します。

使用説明書

  • 素朴なアプローチ: 数値の右ローテーション

  • 効率的な方法: X

  • を掛けます。

簡単な方法: 数値を右回転する

素朴なアプローチは、数字 1 から始めて、目標の数字 N に達するまでその数字を右に繰り返し回転させることです。スピンするたびに、最後の数字が最初の数字に変わります。概念的には単純ですが、この戦略は N の値が大きい場合には非効率になる可能性があり、目標数値に到達するまでに多くの手順が必要になる場合があります。 N が増加すると、回転数も急激に増加するため、1 を N に変換する最小コストを決定する方法としてはあまり効果的ではなくなります。この方法は非効率であるため、N の値が大きい場合には推奨されません。一方、N を X で割るなどの他の方法は、変換の最低コストを見つけるのにより効率的であることが証明されています。

###アルゴリズム###

    変数 "cost" を作成して、N に到達するために必要なステップを追跡し、現在の値を表す 1 に初期化します。
  • 現在の数値が N と等しくなるまで、これらの手順を繰り返します。
  • 現在の数値の桁を右に回転して、最後の桁が最初の桁になるようにします。

    「コスト」変数を 1 ずつ増分して、必要な回転数を記録します。

  • 現在の数値が N に等しくなると、「コスト」変数には、右回転を使用して元の整数 (1) を N に回転するために必要な最小ステップ数が格納されます。
  • ###例### リーリー ###出力### リーリー
  • 効率的な方法: X
を掛けます。

1 と N を乗算するコストを最小限に抑える最善の方法は、結果が 1 になるまで N を X で定期的に除算することです。これを実現するには、コスト変数を初期化して最小コストを監視します。 N の値から始めて、N が X で割り切れるかどうかを判断します。 N と X が両方とも割り切れる場合、コストが増加して割り算が実行されます。 N が 1 になるまでこのプロセスを繰り返します。この方法は、結果 1 を得るまでに必要な手順が少ないため、「数値の右回転」よりも効率的です。より高速で効率的な性質があるため、最低のスイッチング コストを決定するための推奨される方法です。

###アルゴリズム###

最小コストを追跡するには、変数「コスト」を 0 に初期化します。

固定乗数 X を使用して、指定されたターゲット番号 N から開始します。

  • N が 1 より大きい限り、手順 4 ~ 6 を繰り返します。

  • N% X == 0 と仮定して、N が X で割り切れるかどうかを判断します。

  • N が割り切れる場合 (N = N / X)、N を X で割り、「コスト」変数に 1 を加えます。

  • 割り切れない場合は、N 個の数値を右にループし (最後の桁を最初の桁に移動して)、「コスト」を 1 ずつ増やします。

  • 手順 3 ~ 6 を N が 1 になるまで繰り返します。

  • 最後の「コスト」は、X を乗算するか、数値を右にシフトして 1 を N に変更するために必要な最小値を表します。

  • ###例### リーリー ###出力### リーリー ###結論は###

    要約すると、X を掛けるか数値を右回転して 1 を N に変換する最小コストを決定する場合、次の効果的な掛け算方法が最適になります。効率的な方法によって提供されるより合理化されたアプローチでは、必要な N 数に到達するために必要なステップが少なくなります。一方で、単純な方法は、特に N の値が大きい場合、非効率的で時間がかかる可能性があります。必要なプロセスを削減し、効率的な方法を使用して、1 を N に変換する最も経済的な方法を決定できます。この戦略は、この変換プロセスの最小コストを決定する問題を解決し、より有用で効率的なアルゴリズムであることが証明されています。

以上が1 を N に変換する最小コスト。X を掛けるか数値を右回転することで達成できます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート