微積分と物理​/数列を調べるコーディング

Unity学習帳2冊目微積分と物理 / 数列を調べるコーディング

数列を調べるコーディング anchor.png

\(\displaystyle\ { \left( \frac { n+1 }{ n } \right) }^{ n }\) \(n\)は自然数

の数列をunityで出力しその様子を見てみる

Everything is expanded.Everything is shortened.
 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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
 
 
 
 
 
 
 
 
-
|
-
|
|
-
|
|
!
|
|
|
!
|
-
!
-
-
|
!
!
|
-
!
-
-
-
|
!
!
!
|
-
!
-
-
!
|
-
!
|
-
!
|
|
-
|
!
|
-
!
-
-
|
!
!
!
!
using UnityEngine;
using System.Collections;
 
using System.Linq;
using System.Collections.Generic;
using System.IO;
 
public class Numbers3 : MonoBehaviour
{
    void Start ()
    {
        IEnumerable<Seq> number = Seq.GeneratorNum (100);
        Show (number.Take (5));
        //コンソールには5要素表示
        //資料:
        //http://ufcpp.net/study/csharp/sp3_stdqueryo.html
 
        string folder = Application.dataPath;        //unityの実行ファイルがあるフォルダ(Assetsフォルダ内に生成される)
        IEnumerable<string> strList = number.Select (n => n.ToString ()).ToArray ();
        SaveText (folder, @"\test.txt", strList);
    }
 
    //表示用補助関数
    static void Show<T> (IEnumerable<T> num)
    {
        foreach (var item in num) {
            print (item);
        }
    }
 
    //結果をテキストファイルとしてセーブする補助関数
    public void SaveText (string fileFolder, string filename, IEnumerable<string> dataStr)
    {
        using (StreamWriter w = new StreamWriter(fileFolder+filename)) {
            foreach (var item in dataStr) {
                w.WriteLine (item);
            }
        }
    }
 
    //数列用クラス
    public class Seq
    {
        //分母
        public int denominator;
 
        //分子
        public int numerator;
 
        //実数
        public float realNumber;
 
        public override string ToString ()
        {
            return string.Format ("({0}/{1})^{1} ... {2}", numerator, denominator, realNumber);
        }
 
        //この数列クラス用の固有の式
        public static IEnumerable<Seq> GeneratorNum (int count)
        {
            for (int n = 1; n <= count; n++) {
                yield return new Seq{ denominator = n , numerator = n+1 , realNumber = Mathf.Pow(((n+1f)/n),n) };
            }
        }
    }
}

<出力>
(2/1)^1 ... 2
(3/2)^2 ... 2.25
(4/3)^3 ... 2.370371
(5/4)^4 ... 2.441406
(6/5)^5 ... 2.488321

このサンプルコードではwindows開発環境でAssetsフォルダ内に test.txt ファイルとしてnが100まで計算した数列の計算結果をセーブしている



添付ファイル:

トップ   差分 バックアップ 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Last-modified: 2015-07-09 (木) 22:15:44 (JST) (3219d) by osinko