大臣辞めました。
ぼくにはもう天下一統しか見えてません。
帝や公家に止められたけど、ぼくの意志は硬い。
「魂を燃やせる奴は人も燃やせる。人も燃やせる奴は天下を燃やせる。」
やっぱりぼくには天下しか見えてない。
第六天魔王への道、歩みます。
1日48時間中国征伐します。
これからもよろしくお願いします。
大臣辞めました。
ぼくにはもう天下一統しか見えてません。
帝や公家に止められたけど、ぼくの意志は硬い。
「魂を燃やせる奴は人も燃やせる。人も燃やせる奴は天下を燃やせる。」
やっぱりぼくには天下しか見えてない。
第六天魔王への道、歩みます。
1日48時間中国征伐します。
これからもよろしくお願いします。
自分から進んで悪をなそうという人はいないので性善説だけど、その人の信じている善が、他の人の善とか、社会一般の善と同じであるということはないので、その差が悪となるということ。
すなわち、
$$自分にとっての悪 = 距離(他人の善 – 自分の善)$$
という式となる。
ここで、他人の善 > 自分の善 だからといって、自分(の善)が他人(の善)に劣っているというわけではなく、あくまで座標の位置関係にすぎない。すなわち、価値相対主義を前提にしている。
またこれは善悪二元論ではなく、互いの善の遠い状態こそが悪であるという一元論でもある。
自作二分木で四苦八苦しております。
とりあえず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;
}
}
}
バグダッシュ
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 © 2024 アウグストロン
Theme by Anders Noren — Up ↑