0

これは私の最初の投稿です :) よし、開始値 0 に 1 または -1 をランダムに追加するプログラムを作成しようとしています。このプロセスは 500 ステップほど進み、最終結果を配列。これは私が到達した距離です:

using System;
using System.Collections.Generic;
namespace dimensionrandomwalk
{
    class MainClass
    {
        public static void Main (string[] args)
        {
            Random rnd = new Random();
            int[] x;
            x = new int[500];
            for (int i = 0; i < 500; i++){
                int L = rnd.Next (0, 2);
                int L1 = -1;
                int L2 = 1;
            if (L == 0) {
                    x [i] = L1;
            } else if (L == 1) {
                x [i] = L2;
            }
                x[i] = x[i+1]+x[i];

                Console.WriteLine (x[i]);
                }


        }
    }
}

2 つの配列を作成します。1 つは 500 のステップを含み、もう 1 つは 100 の最終結果を含みます。しかし、x[1] に x[2] などを x[500] まで追加することはできません。ありがとうございました:)

4

2 に答える 2

1

これがあなたが望むものだと思います:

using System;
using System.Collections.Generic;
namespace dimensionrandomwalk
{
    class MainClass
    {
        public static void Main (string[] args)
        {
            Random rnd = new Random();
            int[] x;
            x = new int[500];
            for (int i = 0; i < 500; i++){
                int L = rnd.Next (0, 2);

                x[i] = (L==0) ? -1 : 1;

                Console.WriteLine (x[i]);
            }

            int total_value = 0;
            for (int i = 0; i < 500; i++
                total_value += x[i];

            Console.WriteLine ("Total: " + total_value);
        }
    }
}

または、一時配列を気にしない場合:

using System;
using System.Collections.Generic;
namespace dimensionrandomwalk
{
    class MainClass
    {
        public static void Main (string[] args)
        {
            Random rnd = new Random();

            int total_value = 0;

            for (int i = 0; i < 500; i++){
                int L = rnd.Next (0, 2);

                total_value += (L==0) ? -1 : 1;            
            }

            Console.WriteLine ("Total: " + total_value);
        }
    }
}
于 2013-11-08T08:25:01.203 に答える