challenge シードを固定した乱数

シードを固定した疑似乱数を出力してください。
数回実行して、常に同じ結果が出力されることを確認してください。

Posted feedbacks - C#

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
using System;
class P
{
    static void Main()
    {
        Random rand = new Random(32);
        for (int i = 0; i< 10; i++)
                Console.WriteLine(rand.Next());
    }
}

Visual Stuido 2008以降のテスティングフレームワークを使用。
値の確認をする程度なら、テスティングフレームワーク+SequenceEqual使えば目視の必要なんぞナッシング。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Linq;
using System.Collections.Generic;

namespace TestProject1
{
    [TestClass()]
    public class FilterContextTest
    {
        [TestMethod()]
        public void RandomTest01()
        {
            int seed = 33;
            for (int i = 0; i < 13; i++)
            {
                var ary1 = CreateRandomArray(seed);
                var ary2 = CreateRandomArray(seed);
                Assert.IsTrue(ary1.SequenceEqual(ary2));
            }
        }

        public IEnumerable<int> CreateRandomArray(int seed)
        {
            Random rand = new Random(seed);
            return Enumerable.Range(1, 20).Select(num => rand.Next(num));
        }
    }
    //(中略)
}

Index

Feed

Other

Link

Pathtraq

loading...