C#
 Computer >> コンピューター >  >> プログラミング >> C#

安全な乱数を生成するC#プログラム


安全な乱数を得るには、RNGCryptoServiceProviderクラスを使用します。暗号化乱数ジェネレーターを実装しています。

同じクラスを使用して、次の-

を使用していくつかのランダムな値を見つけました
using (RNGCryptoServiceProvider crypto = new RNGCryptoServiceProvider()) {
   byte[] val = new byte[6];
   crypto.GetBytes(val);
   randomvalue = BitConverter.ToInt32(val, 1);
}

乱数を生成するには、次のコードを実行してみてください。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
using System.Security.Cryptography;
public class Demo {
   public static void Main(string[] args) {
      for (int i = 0; i <= 5; i++) {
         Console.WriteLine(randomFunc());
      }
   }
   private static double randomFunc() {
      string n = "";
      int randomvalue;
      double n2;
      using (RNGCryptoServiceProvider crypto = new RNGCryptoServiceProvider()) {
         byte[] val = new byte[6];
         crypto.GetBytes(val);
         randomvalue = BitConverter.ToInt32(val, 1);
      }
      n += randomvalue.ToString().Substring(1, 1)[0];
      n += randomvalue.ToString().Substring(2, 1)[0];
      n += randomvalue.ToString().Substring(3, 1)[0];
      n += randomvalue.ToString().Substring(4, 1)[0];
      n += randomvalue.ToString().Substring(5, 1)[0];
      double.TryParse(n, out n2);
      n2 = n2 / 100000;
      return n2;
   }
}

出力

0.13559
0.0465
0.18058
0.26494
0.52231
0.78927

  1. MySQLストアドプロシージャで5つの乱数を生成するにはどうすればよいですか?

    乱数を生成するには、MySQLのORDER BY RAND()関数を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable (Value int); Query OK, 0 rows affected (0.76 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values(89); Query OK, 1 row affected (0.19 sec) mysql> insert into DemoTable values(98); Qu

  2. 再帰関数を使用して数値のGCDを見つけるCプログラム

    問題 Cプログラミング言語の再帰関数を使用して、指定された2つの数値の最大公約数(GCD)を見つけます。 解決策 再帰関数を使用して、指定された2つの数値の最大公約数(GCD)を見つけるための解決策は、次のとおりです- アルゴリズム 再帰関数を使用して、指定された2つの数値の最大公約数(GCD)を見つけるには、以下のアルゴリズムを参照してください。 ステップ1 −再帰関数を定義します。 ステップ2 −2つの整数aとbを読み取ります。 ステップ3 −再帰関数を呼び出します。 a. if i>j b. then return the function with parameter