微積分と物理/論理2
をテンプレートにして作成
Unity学習帳2冊目
微積分と物理/論理2 をテンプレートにして作成
[
トップ
] [
差分
|
バックアップ
|
リロード
] [
新規
|
一覧
|
検索
|
最新
|
ヘルプ
]
[ ]
開始行:
TITLE:論理2
#contents
#jsmath
**日本語とC#と論理記号
<真理値表>
|CENTER:|CENTER:|CENTER:|CENTER:|BGCOLOR(#FFDDDD):CENTER:...
| | | | |\(A\wedge B\)| | | | |\(A \underline{\ve...
| | | | |かつ| | | | | |または| | | | |でな...
| | | | |AND| | | | |XOR|OR|NOR| |NOT|IMP|NOT|IM...
|A|B| |false|A&&B|A&&!B|A|!A&&B|B|A!=B|A||B|!(A||B)|...
|1|1| |0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|
|1|0| |0|0|1|1|0|0|1|1|0|0|1|1|0|0|1|1|
|0|1| |0|0|0|0|1|1|1|1|0|0|0|0|1|1|1|1|
|0|0| |0|0|0|0|0|0|0|0|1|1|1|1|1|1|1|1|
1:真:True(トゥルー)
0:偽:False(フォールス)
AND(掛算)はOR(足算)より先に計算する事
**回路図
各論理式は電池と電球それを伝える配線で表現できる
IMPも他の回路と同様に回路図式化できる
&ref(kairo1.png);
**ベン図
&ref(f5ee6b5ef9c8329673ee530c59206f91.png);
集合の関係を表すための図。利用する際は領域を染めた領域を...
**含意(がんい:IMPLIES)
\(A\Rightarrow B\) 日本語にするなら「AならばB」
&font(Red){''論理学で利用される機会が多い「ならば」は「含...
この「ならば」は含意を無理に日本語へ近似した結果であって...
真理値表の値の動きこそが、その働きを正確に表している。だ...
-この結合子は必ず二項をつないだ状態で議論される
-AはBである為の十分条件
-BはAである為の必要条件
&ref(imp.png);
論理式では &font(Red){!A||B}; で表せる
\(インコ\Rightarrow 鳥\)
\(鳥\Rightarrow 動物\)
//|TLEFT:300|CENTER:|CENTER:|CENTER:|c
//|A|B|A⇒B すなわち !A||B|
//|1|1|1|
//|1|0|0|
//|0|1|1|
//|0|0|1|
//資料:[[含意の命題「ならば」をあらわす論理記号 A⇒B [...
#hr
メモ:
AはBに含まれてる?だから"含"意??計算式で含まれてるって...
\(n>\delta \Rightarrow \left| { a }_{ n }-\alpha \right|...
&ref(imp2.png);
//-AもBもあるのはありえる
//-AがあってBが無いのはありえない
//-AがなくてBがあるのはありえる
//-AもBもないのはありえる
#hr
**条件付き論理積の確認
C#のAND、「A ∧ B」を表現する&&などの論理演算が「条件付...
以下のコードで check を true にすると A という条件を満た...
しかし false の場合、条件は満たされていないので、&font(Re...
|| や == 等も同様、C#では条件付き論理演算子になってい...
#code(csharp){{
using UnityEngine;
using System.Collections;
public class Logic2 : MonoBehaviour
{
public bool check;
void Start ()
{
if (check && Execute ()) {
print ("!");
}
}
bool Execute ()
{
print ("Exec");
return true;
}
}
}}
実行結果
falseの場合、何も表示されない
trueの場合
Exec
!
と表示される
**カルノー図
複数の論理式を出来うる限り少ない論理式の組み合わせに単純...
命題数によって描くカルノー図は違う。それぞれ書式フォーマ...
具体的な命題数による図は以下の例題(命題数2と3の例を作...
4命題まではノートに書けるがそれ以上になると別の方法があ...
***3ランプゲーム
赤、緑、青の3色ランプがある
以下のパターンの時、お化けが出てくる
+赤が消えて青が光っている
+緑と青が光っている
+全てのランプが消えている
+緑と青が消えて、赤が光る
これを論理式で考える。まず命題を作る
r:赤ランプが光る
g:緑ランプが光る
b:青ランプが光る
各事象を論理式化する
+ !r&&b
+ g&&b
+ !r&&!g&&!b
+ !g&&!b&&r
これをカルノー図にして論理式を整理する
&ref(karno1.png);
コード化すると以下になる
#code(csharp){{
using UnityEngine;
using System.Collections;
//論理テスト
public class Logic1 : MonoBehaviour
{
bool r, g, b, monster;
void Update ()
{
if (Input.GetKeyDown (KeyCode.Space)) {
ChangeFlag ();
//if (!b && !g || g && b || !r && !g && b) { //カル...
if (!r && b || g && b || !r && !g && !b || !g && !b...
monster = true;
} else {
monster = false;
}
print ("RED=" + r + " :GREEN=" + g + " :BLUE=" +...
}
}
void ChangeFlag ()
{
r = Random.value > 0.5f ? true : false;
g = Random.value > 0.5f ? true : false;
b = Random.value > 0.5f ? true : false;
}
}
}}
***2ランプゲーム
<2ランプゲームのルール>
次のいずれかのパターンになったらお化けが出てきます
+青いランプは消えているが黄色いランプは光っている
+青いランプは消えていて黄色いランプも消えている
+青いランプは光っていて黄色いランプも光っている
[[Unity Web Player | ロジックモンスター):https://dl.dropb...
[[(全ソース:GitHub_Osinko/Logic):https://github.com/Osin...
まず命題を考える。命題数は2になる
命題blue:「青いランプが光っている」
命題yellow:「黄色いランプが光っている」
この命題を使って各論理式を考える
+!blue&&yellow
+!blue&&!yellow
+blue&&yellow
これら3つを論理和でひとつにする
!blue && yellow | | !blue && !yellow | | blue && yellow
これをカルノー図で考えると・・・
&ref(karno2.png);
これを利用すると
「 if (!blue && yellow | | !blue && !yellow | | blue && y...
「if(!blue | | yellow)」とシンプルになる
#hr
ソース一部抜粋
#code(csharp){{
using UnityEngine;
using System.Collections;
public class Lamp : MonoBehaviour
{
public Animator anim, monster;
public Light blueLight, yellowLight;
public float timeSpan;
float timeCount;
bool blue, yellow, button;
void Update ()
{
timeCount += Time.deltaTime;
if (timeCount > timeSpan) {
timeCount %= timeSpan;
ChangeLamp ();
//今回はココがテーマ
if (!blue && yellow || !blue && !yellow || blue && ...
anim.SetTrigger ("elevatorTrig");
StartCoroutine (MonsterCrouch ());
//メカニムに設定したトリガーをstringで指定して起...
//メカニム側はanyStateではなく新しく自分でつくっ...
}
}
}
//コルーチンで再生タイムを微調整
float startDelay = 0.2f;
float crouchStepDelay = 0.8f;
public IEnumerator MonsterCrouch ()
{
WaitForSeconds stdelay = new WaitForSeconds (startDel...
WaitForSeconds delay = new WaitForSeconds (crouchStep...
yield return stdelay;
monster.SetBool ("crouch", true);
yield return delay;
monster.SetBool ("crouch", false);
}
void ChangeLamp ()
{
blue = Random.value > 0.5f ? true : false;
yellow = Random.value > 0.5f ? true : false;
blueLight.enabled = blue;
yellowLight.enabled = yellow;
}
}
}}
#navi
終了行:
TITLE:論理2
#contents
#jsmath
**日本語とC#と論理記号
<真理値表>
|CENTER:|CENTER:|CENTER:|CENTER:|BGCOLOR(#FFDDDD):CENTER:...
| | | | |\(A\wedge B\)| | | | |\(A \underline{\ve...
| | | | |かつ| | | | | |または| | | | |でな...
| | | | |AND| | | | |XOR|OR|NOR| |NOT|IMP|NOT|IM...
|A|B| |false|A&&B|A&&!B|A|!A&&B|B|A!=B|A||B|!(A||B)|...
|1|1| |0|1|0|1|0|1|0|1|0|1|0|1|0|1|0|1|
|1|0| |0|0|1|1|0|0|1|1|0|0|1|1|0|0|1|1|
|0|1| |0|0|0|0|1|1|1|1|0|0|0|0|1|1|1|1|
|0|0| |0|0|0|0|0|0|0|0|1|1|1|1|1|1|1|1|
1:真:True(トゥルー)
0:偽:False(フォールス)
AND(掛算)はOR(足算)より先に計算する事
**回路図
各論理式は電池と電球それを伝える配線で表現できる
IMPも他の回路と同様に回路図式化できる
&ref(kairo1.png);
**ベン図
&ref(f5ee6b5ef9c8329673ee530c59206f91.png);
集合の関係を表すための図。利用する際は領域を染めた領域を...
**含意(がんい:IMPLIES)
\(A\Rightarrow B\) 日本語にするなら「AならばB」
&font(Red){''論理学で利用される機会が多い「ならば」は「含...
この「ならば」は含意を無理に日本語へ近似した結果であって...
真理値表の値の動きこそが、その働きを正確に表している。だ...
-この結合子は必ず二項をつないだ状態で議論される
-AはBである為の十分条件
-BはAである為の必要条件
&ref(imp.png);
論理式では &font(Red){!A||B}; で表せる
\(インコ\Rightarrow 鳥\)
\(鳥\Rightarrow 動物\)
//|TLEFT:300|CENTER:|CENTER:|CENTER:|c
//|A|B|A⇒B すなわち !A||B|
//|1|1|1|
//|1|0|0|
//|0|1|1|
//|0|0|1|
//資料:[[含意の命題「ならば」をあらわす論理記号 A⇒B [...
#hr
メモ:
AはBに含まれてる?だから"含"意??計算式で含まれてるって...
\(n>\delta \Rightarrow \left| { a }_{ n }-\alpha \right|...
&ref(imp2.png);
//-AもBもあるのはありえる
//-AがあってBが無いのはありえない
//-AがなくてBがあるのはありえる
//-AもBもないのはありえる
#hr
**条件付き論理積の確認
C#のAND、「A ∧ B」を表現する&&などの論理演算が「条件付...
以下のコードで check を true にすると A という条件を満た...
しかし false の場合、条件は満たされていないので、&font(Re...
|| や == 等も同様、C#では条件付き論理演算子になってい...
#code(csharp){{
using UnityEngine;
using System.Collections;
public class Logic2 : MonoBehaviour
{
public bool check;
void Start ()
{
if (check && Execute ()) {
print ("!");
}
}
bool Execute ()
{
print ("Exec");
return true;
}
}
}}
実行結果
falseの場合、何も表示されない
trueの場合
Exec
!
と表示される
**カルノー図
複数の論理式を出来うる限り少ない論理式の組み合わせに単純...
命題数によって描くカルノー図は違う。それぞれ書式フォーマ...
具体的な命題数による図は以下の例題(命題数2と3の例を作...
4命題まではノートに書けるがそれ以上になると別の方法があ...
***3ランプゲーム
赤、緑、青の3色ランプがある
以下のパターンの時、お化けが出てくる
+赤が消えて青が光っている
+緑と青が光っている
+全てのランプが消えている
+緑と青が消えて、赤が光る
これを論理式で考える。まず命題を作る
r:赤ランプが光る
g:緑ランプが光る
b:青ランプが光る
各事象を論理式化する
+ !r&&b
+ g&&b
+ !r&&!g&&!b
+ !g&&!b&&r
これをカルノー図にして論理式を整理する
&ref(karno1.png);
コード化すると以下になる
#code(csharp){{
using UnityEngine;
using System.Collections;
//論理テスト
public class Logic1 : MonoBehaviour
{
bool r, g, b, monster;
void Update ()
{
if (Input.GetKeyDown (KeyCode.Space)) {
ChangeFlag ();
//if (!b && !g || g && b || !r && !g && b) { //カル...
if (!r && b || g && b || !r && !g && !b || !g && !b...
monster = true;
} else {
monster = false;
}
print ("RED=" + r + " :GREEN=" + g + " :BLUE=" +...
}
}
void ChangeFlag ()
{
r = Random.value > 0.5f ? true : false;
g = Random.value > 0.5f ? true : false;
b = Random.value > 0.5f ? true : false;
}
}
}}
***2ランプゲーム
<2ランプゲームのルール>
次のいずれかのパターンになったらお化けが出てきます
+青いランプは消えているが黄色いランプは光っている
+青いランプは消えていて黄色いランプも消えている
+青いランプは光っていて黄色いランプも光っている
[[Unity Web Player | ロジックモンスター):https://dl.dropb...
[[(全ソース:GitHub_Osinko/Logic):https://github.com/Osin...
まず命題を考える。命題数は2になる
命題blue:「青いランプが光っている」
命題yellow:「黄色いランプが光っている」
この命題を使って各論理式を考える
+!blue&&yellow
+!blue&&!yellow
+blue&&yellow
これら3つを論理和でひとつにする
!blue && yellow | | !blue && !yellow | | blue && yellow
これをカルノー図で考えると・・・
&ref(karno2.png);
これを利用すると
「 if (!blue && yellow | | !blue && !yellow | | blue && y...
「if(!blue | | yellow)」とシンプルになる
#hr
ソース一部抜粋
#code(csharp){{
using UnityEngine;
using System.Collections;
public class Lamp : MonoBehaviour
{
public Animator anim, monster;
public Light blueLight, yellowLight;
public float timeSpan;
float timeCount;
bool blue, yellow, button;
void Update ()
{
timeCount += Time.deltaTime;
if (timeCount > timeSpan) {
timeCount %= timeSpan;
ChangeLamp ();
//今回はココがテーマ
if (!blue && yellow || !blue && !yellow || blue && ...
anim.SetTrigger ("elevatorTrig");
StartCoroutine (MonsterCrouch ());
//メカニムに設定したトリガーをstringで指定して起...
//メカニム側はanyStateではなく新しく自分でつくっ...
}
}
}
//コルーチンで再生タイムを微調整
float startDelay = 0.2f;
float crouchStepDelay = 0.8f;
public IEnumerator MonsterCrouch ()
{
WaitForSeconds stdelay = new WaitForSeconds (startDel...
WaitForSeconds delay = new WaitForSeconds (crouchStep...
yield return stdelay;
monster.SetBool ("crouch", true);
yield return delay;
monster.SetBool ("crouch", false);
}
void ChangeLamp ()
{
blue = Random.value > 0.5f ? true : false;
yellow = Random.value > 0.5f ? true : false;
blueLight.enabled = blue;
yellowLight.enabled = yellow;
}
}
}}
#navi
ページ名: