C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.95432 の関連記事表示

<< 0 >>
■95432  行ごとに乱数で0、1を指定して二次配列を作る方法について
□投稿者/ サイカク -(2020/08/01(Sat) 21:27:09)

    分類:[C#] 

    初めて投稿いたします。
    C#を始めて1週間ののサイカクと申します。
    VisualStudioCodeで開発を行っており、versionは1.47です。

    現在、「0」と「1」で構成された6×6の二次配列を作ろうとしています。
    その際、行ごとに「0」を4つ、「1」を2つランダムで格納させたいです。
    (列ごとの「0」と「1」の構成はどんな形であれ構わないです)
    つまり、36個の要素の構成は最終的に「0」が24個、「1」が12個になります。

    具体的には

    000110
    100100
    001010
    110000
    101000
    001001

    このような二次配列を完成させたいと思っています。
    二次配列の作り方や、1次配列の乱数指定方法は存じているのですが、
    組み合わせて運用する方法を理解できなかったので、ご質問させていただきました。

    初歩的な質問で申し訳ありません。
    何卒ご回答のほど、よろしくお願い申し上げます。
親記事 /過去ログ165より / 関連記事表示
削除チェック/

■95436  Re[1]: 行ごとに乱数で0、1を指定して二次配列を作る方法について
□投稿者/ くまくま -(2020/08/01(Sat) 22:20:50)
    2020/08/01(Sat) 22:22:47 編集(投稿者)
    2020/08/01(Sat) 22:21:51 編集(投稿者)

    No95432 (サイカク さん) に返信
    >>行ごとに「0」を4つ、「1」を2つランダムで格納させたいです。
    よくやる方法
    1. まず1次元で「0」を4つ、「1」を2つの全パターンの配列を作成
    これを「パターン配列」とすると

    2a. 重複ありの場合
    ランダムで「パターン配列」のインデックスを取得し2次元配列に設定

    2b. 重複なしの場合
    ランダムで「パターン配列」のインデックスを取得し
    2b.a. 「パターン配列」に値が設定されていたら2次元配列に設定
    その後「パターン配列」から値を削除
    2b.b. 「パターン配列」に値が設定されていなかったら再度インデックス取得

    こんな感じだとデバックもしやすいし「パターン配列」の設定次第でランダム性を変化もしやすいですよ
記事No.95432 のレス /過去ログ165より / 関連記事表示
削除チェック/

■95440  Re[2]: 行ごとに乱数で0、1を指定して二次配列を作る方法について
□投稿者/ サイカク -(2020/08/01(Sat) 23:01:18)
    No95436 (くまくま さん) に返信

    ご返信ありがとうございます。

    > 1. まず1次元で「0」を4つ、「1」を2つの全パターンの配列を作成
    > これを「パターン配列」とすると
    >
    > 2a. 重複ありの場合
    > ランダムで「パターン配列」のインデックスを取得し2次元配列に設定
    >
    > 2b. 重複なしの場合
    > ランダムで「パターン配列」のインデックスを取得し
    > 2b.a. 「パターン配列」に値が設定されていたら2次元配列に設定
    > その後「パターン配列」から値を削除
    > 2b.b. 「パターン配列」に値が設定されていなかったら再度インデックス取得

    こちらの方法でも試してみたところ、求めていた二次配列が出来上がりました。
    デバッグも簡単そうなので、今後の開発で役立てていこうと思います。
    ご指導いただき、ありがとうございました。
記事No.95432 のレス / END /過去ログ165より / 関連記事表示
削除チェック/

■95434  Re[1]: 行ごとに乱数で0、1を指定して二次配列を作る方法について
□投稿者/ キングダム -(2020/08/01(Sat) 22:14:30)
    No95432 (サイカク さん) に返信
    {0, 0, 0, 0, 1, 1}
    をシャッフルして各行に入れて行けば良いです。

    シャッフルのアルゴリズムは.NETにあったかしら。
    ちょっとわからないですけど、Fisher-Yatesでググったら幸せになれます。
記事No.95432 のレス /過去ログ165より / 関連記事表示
削除チェック/

■95439  Re[2]: 行ごとに乱数で0、1を指定して二次配列を作る方法について
□投稿者/ サイカク -(2020/08/01(Sat) 22:54:01)
    No95434 (キングダム さん) に返信

    早速のご返信ありがとうございます。

    > Fisher-Yatesでググったら幸せになれます。
    このアルゴリズムを使用したところ、うまく二次配列を作ることができました。

    非常に勉強になりました。
    ありがとうございます。
記事No.95432 のレス / END /過去ログ165より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -