投稿

2月, 2024の投稿を表示しています

メモ (4回目)

2024/2/29(木) メモ (4回目)   BASICの行番号やGOTO文について   ■  N88-BASIC互換VL,NL,XL-BASICの行番号について Windowsのメモ帳等のスクリーンエディタで 行番号の無いプログラムを書き(ラベル使用、ERL不使用) LOAD命令で読込ませると行番号が自動付加されます SAVE "ファイル名",N で行番号を取り除いて保存できます     ■ BASICの行番号について BASICが作られた頃のはメモリーや速度などの 制限でラインエディタ(1行入力方式)が主流でした   MS-DOS時代以降のスクリーンエディタ(画面入力方式) なら行番号入力は必要有りませんが ラインエディタでは編集する行を知るために 行番号が必要でした 現在の恵まれた環境からは想像しにくいですが     ■ GOTO文について(BASIC, C, アセンブラ) CPU (コンピュータ) は機械語 ( アセンブラ ) で 動いています アセンブラ は 条件分岐 ( BASI CのIFとGOTO) が無ければ CPUを制御 できません   BASICにはGOTOに 代わる 命令FORやWHILEなど も 用意されており アセンブラよりも分かり易い プログラムが書けます (構造化プログラミング)   GOTOよりFORやWHILEを使う方が分かり易い プログラム が 書 けるという意味が いつのまにか GOTO自体が 悪者扱いされるようになり ました   アセンブラやBASICは 書き方によってた 分かり易くも 悪く も出来ます GOTO(分岐命令)は悪者ではなく 使い方 次第 です  

メモ (3回目)

2024/2/28(水) メモ (3回目)   個人的感想     頭の中で「KO N BA N WA」と発音しながら かな入力すると「こんばんは」と正しく打て ローマ字入力すると「こんばんわ」と間違いがち なので かな入力派です     住所や日付は日本ではビッグエンディアン (欧米ではリトルエンディアン)なので PCもビッグエンディアン派ですが PC-98はリトルエンディアンなので残念に思っています (X68000はビッグエンディアン) https://ulprojectmail.blogspot.com/2022/12/endian.html エンディアン(個人的感想)     レトロPCは直接ハードウェアを操作できたので 楽しかったのだと思います モダンPCはブラックボックスだらけで 便利だけれどもつまらなく思う     昔C++が便利で良く遊んでいましたが 同じ動作をCで書くと実行速度が1.?倍に アセンブラだとさらに1.?倍に アセンブラは大変なのでCに落ち着きました     BASICは簡単な事が簡単にできる利点があります LINE(0,0)-(100,10),7 のように1命令で線が引く事ができますが 他の言語では線を引くだけでも大変です     BASICのMMLのオクターブ操作の >は大なりなので高く(o4→o5) <は小なりなので低く(o4→o3) と考えていましたが >は鍵盤の→側(高く) <は鍵盤の←側(低く) の説得力に目から鱗です 太い管は低い>細い管は高いという イメージも当てはまります     過去を見る事は出来るが未来を見る事は出来ない 未来へ行くことは出来るが過去へ行くことは出来ない と思う  

メモ (2回目)

2024/2/27(火) メモ (2回目)   教育問題     7本/人 × 2人 = 2人 × 7本/人 = 14本 である事を理解していない大人がけっこういる以上 掛け算に順序があるという教え方は良くないのではと 思います     χ + χ は 2χ と書ける事が分からないというので χが2個なので 2 × χ と説明をすると それは χ × 2 であって 2 × χ の順だと間違いだと 習ったというので それは間違ったことを教えられていたのだと 説得した     10円/本 × 5本 = 5本 × 10円/本 = 50円 である事を 割り算(円/本)を理解してから 教え直すべきだと思います     1cm ÷ 5mm = 2 は正しいと思うのですが 個人的には 分量単位(接頭語+基本単位)をそろえた途中式も書いて 1cm ÷ 5mm = 10mm ÷ 5mm = 2 とする方が間違いにくく親切で良いと思います   過去記事 https://ulprojectmail.blogspot.com/2023/11/multiplication.html 掛け算の順序問題  

メモ (1回目)

2024/2/26(月) メモ (1回目)   科学と哲学     科学は事実を追究する学問 哲学は空想を追究する学問   うわさは事実より空想の方が広まりやすい事を考えると 科学(事実)より哲学(空想)の方が 人の心を動かしやすいのかも知れません   個人的には空想(哲学)より事実(科学)に心を動かされます     哲学は人知を人知で理解する学問 人間が考えた法則を知る学問 信仰などもかかわってくるもの   科学は人知を超えた存在を人知で理解する学問 人知を超えた存在(自然)が作った法則を知る学問 信仰するものではなく事実を知る事     哲学をやめる事は思考停止すること 答えがなくとも考え続けないと 他人の空想が正しいと思わされてしまう   科学をやめる事は事実を諦める事 事実を諦めると事実とは異なる空想が 事実だと思わされてしまう  

N88-BASICでサイコロの出目の和 (2回目)

イメージ
2024/2/24(土) N88-BASICでサイコロの出目の和 (2回目)   n個のサイコロの出目の和がkとなる場合の数 (diceの理論値とシミュレーション)   ■ 解説 https://ulprojectmail.blogspot.com/2021/11/n88-basicpc.html N88-BASICで順列組合せ   https://ulprojectmail.blogspot.com/2024/02/dice-3.html サイコロの出目の和 (3回目) https://ulprojectmail.blogspot.com/2024/02/dice-4.html サイコロの出目の和 (4回目)   より 理論値 d = 6 [(k-n)/d] Σ(-1) r ( k-rd-1 P n-1 )n/{(n-r)!r!} r=0 とシミュレーションです     ■ 動作 VL,NL,XL-BASICはAlt+6を押して高速化して下さい   dice002.basを走らせると n=1~4を入力します(n=0の時n=3になります) (画面の関係上n=1~4となります)   理論値とシミュレーションを表示します   n個のサイコロの出目の和がkとなる確率を 出た回数/試行回数で求め 確率を全場合の数6 n 倍して それぞれの場合の数(case数)を求めています       Vl,NL,XL-BASICとdlg~.zip(dice002.bas)は このブログ(以下のリンク)から ダウンロードできます https://ulprojectmail.blogspot.com Readme.txtを読んで遊んで下さい

サイコロの出目の和 (4回目)

2024/2/18(日) サイコロの出目の和 (4回目)   出目1~dのサイコロn個の和がkとなる場合の数   ■ 場合の集合(前回より) ▼ 集合の定義 集合Aの場合の数(要素数)は|A|と書く   n個のサイコロの出目1~dの和がkとなる集合をAとする (|A|を求めることが目的)   n個のサイコロの出目1~?の和がkとなる集合をA 0 とする (出目がd以下とdを超える場合のすべてを含む)   i番目のサイコロの出目がdを超える集合をA i とする (i=1~n, i番目以外がdを超える場合も含む)   ▼ |A|の集合の式 |A| = |A 0 | - |A 1 ∪A 2 ∪…∪A n | = |A 0 | - (|A 1 |+|A 2 |+…+|A n |) + (|A 1 ∩A 2 |+…+|A 1 ∩A n |+…+|A 2 ∩A 3 |+…+|A n-1 ∩A n |) +(-1) r (|A 1 ∩A 2 ∩…∩A r |+…+|A n-r+1 ∩A n-r+2 ∩…∩A n |) +(-1) n |A 1 ∩A 2 ∩…∩A n | となる     ■ 集合の場合の数を考える ▼ 例 n個のサイコロの出目1~dの和がkとなる場合の数 n = 3, d = 6, k = 10で考える   ▼ |A 0 |を考える n個のサイコロの和の最小値はnなので k ≧ nとする(この条件以外での場合の数は0)   出目が1~d(=6)の場合の和がk(=10)となる場合の数 〇の数を和k(=10)、_は|を置く場所k-1(=9)か所 |をn-1(=2)個とする   〇_〇_〇_〇_〇_〇_〇_〇_〇_〇 k-1(=9)か所の_にn-1(=2)か所|を置くと例えば 〇_〇|〇_〇_〇_〇_〇|〇_〇_〇 (1個目2, 2個目5, 3個目3の出目)   これはk-1(=9)個からn-1(=2)個を選ぶ組み合わせなので k-1 C n-1  = 9 C 2  = 9!/(7!2!) = 9・8/2 = 36通り   これは出ない出目d+1(=7)~k-2(=8)を含んでいる   |A 0 | = k-1 C n-1  (if k ≧ n)     ▼ |A i |(i=1~n)を考える n個のサイコロの内少なくとも1個はd+1以上なので 和の最小値はn-1+d+

サイコロの出目の和 (3回目)

イメージ
2024/2/18(日) サイコロの出目の和 (3回目)   出目1~dのサイコロn個の和がkとなる場合の集合   ■ 場合の集合 ▼ 集合の定義 集合Aの場合の数(要素数)は|A|と書く   n個のサイコロの出目1~dの和がkとなる集合をAとする (|A|を求めることが目的)   n個のサイコロの出目1~?の和がkとなる集合をA 0 とする (出目がd以下とdを超える場合のすべてを含む)   i番目のサイコロの出目がdを超える集合をA i とする (i=1~n, i番目以外がdを超える場合も含む)     ▼ 集合の式 (A 1 ∪A 2 ∪…∪A n )は少なくとも1個の出目はdを超え Aは出目がd以下のみの場合なので A ∩ (A 1 ∪A 2 ∪…∪A n ) = ∅   また A 0  = A ∪ (A 1 ∪A 2 ∪…∪A n ) なので   |A| = |A 0 | - |A 1 ∪A 2 ∪…∪A n | となる     ▼ |A 1 ∪A 2 ∪…∪A n |(n = 3の時)を考える 例     |A 1 ∪A 2 ∪A 3 | = |A 1 |+|A 2 |+|A 3 | - |A 1 ∩A 2 |-|A 1 ∩A 3 |-|A 2 ∩A 3 | + |A 1 ∩A 2 ∩A 3 |   = (1+4+6+7) + (2+4+5+7) + (3+5+6+7) - (4+7) - (5+7) – (6+7) + (7)   = (1+6) + (2+4) + (3+5) + (7) = 1 + 2 + 3 + 4 + 5 + 6 + 7   つまり |A 1 |+|A 2 |+|A 3 |には |A 1 ∩A 2 ∩A 3 |を除く|A 1 ∩A 2 |,|A 1 ∩A 3 |,|A 2 ∩A 3 | の部分が2回ずつと |A 1 ∩A 2 ∩A 3 |の部分が3回ずつ含まれる |A 1 ∩A 2 |,|A 1 ∩A 3 |,|A 2 ∩A 3 |を引くと 2回分が1回分だけになるが |A 1 ∩A 2 ∩A 3 |の部分を3回分引くことになるので |A 1 ∩A 2 ∩A 3 |を1回分足している     ▼ |A 1 ∪A 2 ∪…∪A n |(n = 4の時)を考える 例       |A 1 ∪A 2 ∪A 3 ∪A 4 | = |A

N88-BASICでサイコロの出目の和 (1回目)

イメージ
2024/2/15(木) N88-BASICでサイコロの出目の和 (1回目)   n個のサイコロの出目の和がkとなる場合の数 (diceシミュレーション)   ■ 解説 https://ulprojectmail.blogspot.com/2024/02/dice-1.html サイコロの出目の和 (1回目) ~ での場合の数をシミュレーションします   ■ 動作 VL,NL,XL-BASICはAlt+6を押して高速化して下さい   dice001.basを走らせると n=1~4を入力します(n=0の時n=3になります) (画面の関係上n=1~4となります)   n個のサイコロの出目の和がkとなる確率を 出た回数/試行回数で求め 確率を全場合の数6 n 倍して それぞれの場合の数(case数)を求めています     VL,NL,XL-BASICとdlg~.zip(dice001.bas)は このブログ(以下のリンク)から ダウンロードできます https://ulprojectmail.blogspot.com Readme.txtを読んで遊んで下さい