前提・実現したいこと
・上限値、下限値を引数として渡してその値の範囲内からランダムな値を返すメソッドを作成する
(ただしRandom.Nextメソッドに引数を指定してはダメ)
発生している問題・
課題で 範囲乱数公式:最小値+(int)(乱数値*(最大値ー最小値+1.0)/(1.0+乱数最大値)) を使ってやるように言われたのですが何故か最小値の値が反映されてしまってます
該当のソースコード
Cusing
1using System.Collections.Generic; 2using System.Linq; 3using System.Text; 4using System.Threading.Tasks; 5 6namespace CS1303_C 7{ 8 class Program 9 { 10 static void Main(string[] args) 11 { 12 Console.Write("下限値:"); 13 int a = int.Parse(Console.ReadLine()); 14 Console.Write("上限値:"); 15 int b = int.Parse(Console.ReadLine()); 16 int sum = Add(a, b); 17 Console.Write(sum); 18 } 19 static int Add(int x,int y) 20 { 21 Random rnd = new Random(); 22 int z = rnd.Next(x, y); 23 int num=x + (int)(z * (y - x + 1.0) / (1.0 + int.MaxValue)); 24 return num; 25 } 26 } 27}# 28
試したこと
int.MaxValueが間違っている気がしたので調べてやってみたがエラーがでた
補足情報(FW/ツールのバージョンなど)
Microsoft VisualStudio2017
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。