ホームページ > バックエンド開発 > C++ > N 個のサイコロの目に見える面の最大合計が X 以上であるかどうかを確認します

N 個のサイコロの目に見える面の最大合計が X 以上であるかどうかを確認します

WBOY
リリース: 2023-09-16 14:13:02
転載
772 人が閲覧しました

N 個のサイコロの目に見える面の最大合計が X 以上であるかどうかを確認します

プログラミングにおける複雑な問題を解決する場合、効率と精度が非常に重要となることがよくあります。特定の課題の 1 つは、N 個のサイコロの目に見える面の最大合計が X 以上であるかどうかを適切に判断することです。このペーパーでは、構文の説明や段階的なアルゴリズムなど、C コーディングにおけるこの困難を解決するためのさまざまなアプローチを評価します。さらに、提案されたアプローチに基づいた実際の完全な実行可能コード例を 2 つ提供します。最後には、N 個のサイコロの目に見える面の最大合計が X 以上であるかどうかを C でチェックする方法を明確に理解できるようになります。

###文法###

これらのメソッドについて詳しく説明する前に、まず次のコードで使用するメソッドの構文を理解しましょう -

リーリー

方法 1

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

まず、変数visibleSumを0に初期化します。この変数には、表示されている面の合計が格納されます。

  • サイコロ ベクトルの各要素を反復処理します。

  • 各ダイスについて、面を降順に並べます。

  • 最大の面 (並べ替え後の最初の要素) をvisibleSumに追加します。

  • visibleSum が X 以上になった場合は、true を返します。

  • 反復の完了後に X 以上の表示可能な合計が見つからない場合は、false を返します。

  • ###例### リーリー ###出力### リーリー

    説明

    の中国語訳は次のとおりです:
  • 説明

このコードでは、最初に関数 checkVisibleSum を定義します。この関数は、N (サイコロの数)、X (最小合計)、および dice (サイコロの面のベクトルを表すベクトル) の 3 つのパラメータを受け取ります。

checkVisibleSum 関数はメソッド 1 を実装します。これは、可視面の合計を格納するために使用される変数visibleSumを0に初期化します。次に、サイコロ ベクトル内の各サイコロを反復処理します。各サイコロについて、sort(dice[i].rbegin(), dice[i].rend()) を使用して面を降順に並べ替えます。これにより、最大の面がソートされたベクトルの先頭にあることが保証されます。

次に、コードはvisibleSum = dice[i][0]を使用して、現在のサイコロの最大の辺をvisibleSumに追加します。この機能を使用すると、特定の状況で発生する可能性のある特定のイベントをよりよく理解できます。

これは、分析中のさまざまな時点で、指定されたvisibleSumがXを超えるかXに等しいかどうかを分析することで確認できます。研究の実施中にこの可能性が発見された場合(通常は真の出力によって示されます)、観測可能な特徴の最大数が当初の意図である X 以上であるとある程度の確信をもって結論付けることができます。

逆に、関連する反復と計算を行って調査を行っても上記の統計が見つからない場合は、明らかに未解決の疑問がさらにあることになります。

main 関数では、ユーザーにサイコロの数 (N) を入力するように求めます。各サイコロの面を保存するために、サイコロと呼ばれるベクトルのベクトルを作成します。次に、N 回繰り返し、サイコロごとに、面の数と面自体の入力をユーザーに求めます。これらの値をサイコロ ベクトルに保存します。

次に、ユーザーに最小合計 (X) を入力するよう求めます。 N、X、サイコロを checkVisibleSum 関数に渡します。したがって、目に見えるダイ面の最大可能合計が X 以上であるというメッセージを伝えます。しかし、この状況の前向きな見通しとは裏腹に、関数が実際には X に関連して望ましくない結果を生み出すことを学習した結果として、私たちは知識を公開する可能性があります。

方法 2

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

まず、変数visibleSumを0に初期化します。この変数には、表示されている面の合計が格納されます。

サイコロ ベクトルの各要素を反復処理します。

    各ダイスについて、面を降順に並べます。
  • 最初の N-1 個の面 (最大の面を除く) の合計を計算し、visibleSum に追加します。
  • visibleSum が X 以上になった場合は true を返します。
  • 反復の完了後に X 以上の表示可能な合計が見つからない場合は、false を返します。
  • ###例### リーリー ###出力### リーリー
  • 説明
  • の中国語訳は次のとおりです:

    説明

  • このコードには、最初のメソッドと同じ checkVisibleSum 関数があります。ただし、主な違いは、目に見える合計の計算にあります。
  • 方法 2 では、最大の面を除く、各ダイの最初の N-1 個の面を合計します。これを実現するには、 ライブラリの累積関数を使用します。 dice[i].begin() と dice[i].begin() N - 1 を累算する範囲として渡し、必要な面を効果的に合計します。

  • main 関数の残りのコードは前の例と同じです。
###結論は###

この記事を通じて、私たちのトピックは C コーディングに関する重要な問題の解決を中心に展開します。特定のサイコロのセット (N) の目に見える最大の面の合計が少なくとも X であるかどうかを正確に判断するにはどうすればよいでしょうか?この質問に対する最良の答えとなると、私たちは 2 つの実用的な解決策を見つけました: 1 つ目は、各サイコロの出目の合計が X 以上であることを確認すること、2 つ目は、最初の N-1 個のサイコロの出目の合計のみを評価すること、そして決定することです。それらが X に一致するか、X を超えるかどうか。さらに、各メソッドのコード設定と、これらの手順を実行するための詳細なガイダンスも提供します。さらに、これらのメソッドに基づいた実際の完全に実行可能なコード例を 2 つ提供します。この記事で提供される知識とコードを活用することで、C プログラミングで N サイコロの表示可能な最大合計が X 以上であるかどうかを判断する問題を自信を持って解決できるようになります。

以上がN 個のサイコロの目に見える面の最大合計が X 以上であるかどうかを確認しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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