月: 2022年7月

2022/0714 人間は性善説だが、善がひとつとは限らない

自分から進んで悪をなそうという人はいないので性善説だけど、その人の信じている善が、他の人の善とか、社会一般の善と同じであるということはないので、その差が悪となるということ。

すなわち、

$$自分にとっての悪 = 距離(他人の善 – 自分の善)$$

という式となる。

ここで、他人の善 > 自分の善 だからといって、自分(の善)が他人(の善)に劣っているというわけではなく、あくまで座標の位置関係にすぎない。すなわち、価値相対主義を前提にしている。

またこれは善悪二元論ではなく、互いの善の遠い状態こそが悪であるという一元論でもある。

2022/0713 N党や参政党という「異民族」

自分を「中華帝国」の一員と自負し、「異民族」を「蛮族」と呼んで排除した結果が今回の民意(選挙結果)だと思った。

排除こそ力に変えていく存在。

「中華帝国」の善悪や良識という枠組みそのものを踏み越えていく存在。

議論や論破といった言葉ではどうにもならない存在。

だからといって自分を含めて「中華帝国」は包摂しないだろう。

だからこそたくましく、しなやかに育つ。

答えはまだ、ぜんぜんわからない。

2022/0713 再帰をwhile()とスタックで表現する──二分木走査例

自作二分木で四苦八苦しております。

とりあえずStackOverflowExceptionが怖いので、while()とスタックで表現できないかとやってたら、再帰関数の呼び出し位置も記憶しておくことが重要と認識。

とりまこんな方法でやってみた。

タプル便利やなー。

        //行きがけ順
        public void TraversePreOrder(Action<Node> action)
        {
            var stack = new Stack<(Node, bool, bool)>(100); //スタック
            var node = Root;    //まずはじめは根から
            bool left = false;  //左子ノードを通過したか
            bool right = false; //右子ノードを通過したか

            /*
            //もし再帰で書いたらこうなるはず
            public void func(Node n){
                /*ノードの中身を見る*/ n.Action();
                /*左子ノードへ行く*/  if(n.Left != null) { func(n.Left); }
                /*右子ノードへ行く*/  if(n.Right != null) { func(n.Right); }
            };
            */

            //ブンブン回していく
            while (node != null)
            {
                //左子ノードも右子ノードも通過してない
                if(left == false && right == false)
                {
                    //ノードの中身を見る
                    action(node);
                }

                //左子ノードへまいります
                if (left == false && node.Left != null)
                {
                    stack.Push((node, true, false)); //左子ノード通過フラグを立てておく
                    node = node.Left;
                    left = false;  //ここらへんの初期化をわすれずに
                    right = false;
                    continue;      //ここでいったん抜ける
                }

                //右子ノードへまいります
                if (right == false && node.Right != null)
                {
                    stack.Push((node, true, true)); //どっちも通過フラグ
                    node = node.Right;
                    left = false;
                    right = false;
                    continue;
                }

                if (stack.Count > 0)
                {
                    (node, left, right) = stack.Pop(); //まだあんじゃん
                }
                else
                {
                    node = null; //もうないです
                }
            }
        }

        //通りがけ順
        public void TraverseInOrder(Action action)
        {
            var stack = new Stack<(Node, bool, bool)>(100);
            var node = Root;
            bool left = false;
            bool right = false;

            /*
            public void func(Node n){
                if(n.Left != null) { func(n.Left); }
                n.Action();
                if(n.Right != null) { func(n.Right); }
            };
            */

            while (node != null)
            {

                if (left == false && node.Left != null)
                {
                    stack.Push((node, true, false));
                    node = node.Left;
                    left = false;
                    right = false;
                    continue;
                }

                //行きがけ順とちがって判定用フラグが減ってるのに注意
                if (right == false)
                {
                    action(node);
                }

                if (right == false && node.Right != null)
                {
                    count++;
                    stack.Push((node, true, true));
                    node = node.Right;
                    left = false;
                    right = false;
                    continue;
                }

                if (stack.Count > 0)
                {
                    (node, left, right) = stack.Pop();
                }
                else
                {
                    node = null;
                }
            }
        }

        //帰りがけ順
        public void TraversePostOrder(Action action)
        {
            var stack = new Stack<(Node, bool, bool)>(100);
            var node = Root;
            bool left = false;
            bool right = false;

            /*
            public void func(Node n){
                if(n.Left != null) { func(n.Left); }
                if(n.Right != null) { func(n.Right); }
                n.Action();
            };
            */

            while (node != null)
            {

                if (left == false && node.Left != null)
                {
                    stack.Push((node, true, false));
                    node = node.Left;
                    left = false;
                    right = false;
                    continue;
                }

                if (right == false && node.Right != null)
                {
                    count++;
                    stack.Push((node, true, true));
                    node = node.Right;
                    left = false;
                    right = false;
                    continue;
                }

                if (true)
                {
                    action(node);
                }

                if (stack.Count > 0)
                {
                    (node, left, right) = stack.Pop();
                }
                else
                {
                    node = null;
                }
            }
        }

2022/0712 取り残された人たちの逆襲

思い返してみて、思い当たったのが、「帝国」と「蛮族」。

自分たちを「中華帝国」と認め、キッチリと城郭で線引きをして、その外にいる周辺諸国・諸民族を「蕃国・蛮族」と呼んだ。

自分たちが強大な武力を持っていたときは、「蕃国・蛮族」は粛々と従い、奴隷に甘んじることもあった。

だが、その武力は、内訌に内訌を重ね、やがて衰える。

それにひきかえ、「蕃国・蛮族」がたくましく、しなやかに、成長していく。

いつしか「蕃国・蛮族」は自分たちの武力の方が勝っていることに気付き、「中華帝国」に陸続と侵入していく。

そして、いままでやられたことをたっぷりと、心行くまでやり返す。

そうしていつしか、「中華帝国」は名前だけに残り、その中身はかつて「蕃国・蛮族」であった者たちによって占められていく。

もはや真実に純粋な「中華帝国」の者は消えてしまった。

やがてかつて「蕃国・蛮族」であった者たちが、「中華帝国」の名前を利用して、あらたに城郭をもってキッチリと線引きをして、外にいる者たちを「蕃国・蛮族」と呼ぶ。

そして、歴史は繰り返される。

2022/0711 政治の世界の情報のベクトル

バグダッシュ
https://dic.pixiv.net/a/%E3%83%90%E3%82%B0%E3%83%80%E3%83%83%E3%82%B7%E3%83%A5

「世の中に飛び交っている情報ってものには、必ずベクトルがかかっているんだ。つまり誘導しようとしていたり、願望が含まれていたり、その情報の発信者の利益をはかる方向性が付加されている。それを差し引いてみれば、より本当の事実関係に近いものが見えてくる」

これだよなぁ。

ほんと、SNS見ててもいろんなベクトルかかった情報ばっかでした。

それが政治の世界ってやつよね。

やんなっちゃう。

Copyright © 2022 アウグストロン

Theme by Anders NorenUp ↑