エレファント・ビジュアライザー調査記録

ビジュアルプログラミングで数式の変形を表すことを考えていくブロクです。

ビジュアルプログラミング

人工知能的代数学(11)

ビジュアルプログラミング 「ビジュアルプログラミング」の項目では、数式の変形で記述すると複雑になるものをビジュアルプログラミングの手法でわかりやすくできないかということを調べていました。ここで扱った「置換の分類」、「交換子の計算」、「マグマ…

ビジュアルプログラミング(28)

たらい回し関数(2) 前回の「たらい回し関数」で「ここには来ない」と書いたところは間違っていて、実際にはもう1回は来るので書き直します。「たらい回し関数」(TyprScript)は以下のようになります(引数を追加しました)。 var count1: number = 0; var depth…

ビジュアルプログラミング(27)

偶置換・奇置換(4) 以下のコード(TypeScript)は置換の転倒数を求めます。これは有限回の繰り返しなので終了します。 function inversion_count(list: number[]): number { var count = 0; for (var i = 0; i < list.length - 1; i++) { for (var j = i + 1; …

ビジュアルプログラミング(26)

偶置換・奇置換(3) 置換の全体を 、互換(2つの要素を交換する互換)の全体を 、基本互換(隣接する2つの要素を交換する互換)の全体を とおきます。 転倒数 ( は自然数全体の集合)を定義することができます。バブルソートの交換回数は転倒数と一致するのでバブ…

ビジュアルプログラミング(25)

偶置換・奇置換(2) 「群論の計算(9) - エレファント・コンピューティング調査報告」や「エレファントな線形代数(5) - エレファント・コンピューティング調査報告」では以下のようなことを説明しています。ここでは、「バブルソート」は隣接する2つの要素を交…

ビジュアルプログラミング(24)

たらい回し関数(1) 「たらい回し関数(1) - エレファント・コンピューティング調査報告」で取り扱った「たらい回し関数」も普通にプログラムを書くことができるので、これについても考えてみます。「たらい回し関数」(TyprScript)は以下のようになります。 va…

ビジュアルプログラミング(23)

偶置換・奇置換(1) Blocklyでブロックを繋げるときに何も選択しなくてもよい例を考えてみます。「群論の計算(9) - エレファント・コンピューティング調査報告」や「エレファントな線形代数(5) - エレファント・コンピューティング調査報告」で取り上げた、置…

ビジュアルプログラミング(22)

ビジュアルプログラムによる計算・プログラム電卓(Blockly)・フラクタル(Blockly)の予定 ビジュアルプログラムのやり方で群の計算をやる予定だったのですが、Blocklyではブロックを繋げるときに選択する方法がわからない(ないかもしれない)ので、難しいよう…

ビジュアルプログラミング(21)

プログラム電卓(Blockly)(9) グラフを使ったサンプルを追加しました。 サンプル「フラクタル(折れ線グラフ)」の使い方 (13)のサンプル選択リストから「フラクタル(折れ線グラフ)」を選択すると(14)の読み込みテキスト領域にサンプルのテキスト(JSON)が表示さ…

ビジュアルプログラミング(20)

プログラム電卓(Blockly)(8) 「Blockly | Google Developers」を使って簡単なプログラムを作ることができる「プログラム電卓(Blockly)」でグラフを表示することができるようにしました。「Charts | Google Developers」を使っています。グラフは「Blockly | …

ビジュアルプログラミング(19)

プログラム電卓(Blockly)(7) 「プログラム電卓(Blockly)」の説明の続きです。各領域の番号は「ビジュアルプログラミング(14) - エレファント・コンピューティング調査報告」を参照してください。 「平方根」の使い方 (11)のリストから「平方根」を選択すると…

ビジュアルプログラミング(18)

プログラム電卓(Blockly)(6) 「プログラム電卓(Blockly)」の説明の続きです。各領域の番号は「ビジュアルプログラミング(14) - エレファント・コンピューティング調査報告」を参照してください。 「足し算・引き算」の使い方 (11)のリストから「足し算・引き…

ビジュアルプログラミング(17)

プログラム電卓(Blockly)(5) 「プログラム電卓(Blockly)」の説明の続きです。各領域の番号は「ビジュアルプログラミング(14) - エレファント・コンピューティング調査報告」を参照してください。 「ソート1」の使い方 (11)のリストから「ソート1」を選択する…

ビジュアルプログラミング(16)

プログラム電卓(Blockly)(4) 「プログラム電卓(Blockly)」の説明の続きです。各領域の番号は「ビジュアルプログラミング(14) - エレファント・コンピューティング調査報告」を参照してください。 「素数」の使い方 (11)のリストから「素数」を選択すると(12)…

ビジュアルプログラミング(15)

プログラム電卓(Blockly)(3) 「プログラム電卓(Blockly)」の説明の続きです。番号は「ビジュアルプログラミング(14) - エレファント・コンピューティング調査報告」を参照してください。 「フィボナッチ数」の使い方 (11)のリストから「フィボナッチ数」を選…

ビジュアルプログラミング(14)

プログラム電卓(Blockly)(2) 「Blockly | Google Developers」を使って簡単なプログラムを作ることができる「プログラム電卓(Blockly)」でリストを扱うことができるようにしました。 使い方 プログラム電卓(Blockly) (1) ブロックを選択する領域(ツールボッ…

ビジュアルプログラミング(13)

プログラム電卓(Blockly) 「Blockly | Google Developers」を使って簡単なプログラムを作ることができる「プログラム電卓(Blockly)」を作成しました。 使い方 プログラム電卓(Blockly) (1) ブロックを選択する領域(ツールボックス) (2) ブロックを表示する領…

ビジュアルプログラミング(12)

関数のグラフ(Blockly) 「Blockly | Google Developers」のサンプル「Graph」では、「Charts | Google Developers」の 「折れ線グラフ | Charts | Google Developers」を使ってグラフを描画しています。「Graph」は「y=~」という形しか指定できないようなの…

ビジュアルプログラミング(11)

「数学とソフトウェアのページ」の他のものも見ていきます。 ユークリッドの互除法・素因数分解・連立1次方程式 「ユークリッドの互除法」、「素因数分解」、「連立1次方程式の解法」は、整数、複素数、多項式に関する簡単なプログラムが書けるようになって…

ビジュアルプログラミング(10)

交換子の計算(1) 「数学とソフトウェアのページ」の「交換子」を見ていきます。 使い方 交換子の計算(1)のリストから式を選んで(2)のボタンを押すと、(5)のテキストボックスに選択した等式が追加されます。(3)のボタンを押すと、(1)のリストの選択された等式…

ビジュアルプログラミング(9)

自然数の演算(3) 「数学とソフトウェアのページ」の「自然数の演算」の続きです。 問題点 (1) ここで とすると (2) ここで を に変換すると を代入すると (3) ここで を に変換すると (4) ここで 、 とすると 現状では (1)、(2)、(3)、(4) ができません。 上…

ビジュアルプログラミング(8)

自然数の演算(2) 「数学とソフトウェアのページ」の「自然数の演算」の操作の例の続きです。 を示します。他にも が成り立つのですが、これを示すには機能が不足しているかもしれません。 (2-1) (2-2) (2-3) (2-4) (2-5) (2-6) (2-7) (2-8) (2-9) (2-10) (2-…

ビジュアルプログラミング(7)

自然数の演算(1) 「数学とソフトウェアのページ」の「自然数の演算」の説明も書いておきます。「自然数の演算」はスマートフォンで使いやすいように「Natural」から説明等を省略したものです。説明は「Natural」の方を見てください。 自然数の演算(1)のリス…

ビジュアルプログラミング(6)

環の演算(2) 「数学とソフトウェアのページ」の「環の演算」の操作例の続きです。両辺が同じ 、 は必要ないはずなので改善すべきなのですが今はこのままとします。なぜこうなっているのか詳しいことはわからなくなってしまったのですが、以下のような理由の…

ビジュアルプログラミング(5)

環の演算(1) 「数学とソフトウェアのページ」の「環の演算」の説明も書いておきます。「環の演算」はスマートフォンで使いやすいように「Ring」から説明等を省略したものです。説明は「Ring」の方を見てください。 環の演算(1)から(4)までのボタンを押すと、…

ビジュアルプログラミング(4)

「数学とソフトウェアのページ」の「群の完備化」自体の説明を詳しく書いていなかったのでここに書いておきます。「群の完備化」はスマートフォンで使いやすいように「Word Problem」から説明等を省略してコンパクトにしたものです。説明は「Word Problem」…

ビジュアルプログラミング(3)

Blocklyで数式の中の位置を指定する方法があるかどうかわからないので別の問題も考えてみます。「数学とソフトウェアのページ」の「群の完備化」について考えます。操作方法は以下のようになります。 O + x = x を選択すると以下のように表示されます O + x …

ビジュアルプログラミング(2)

数式変形システムのイメージ 前回の数式の変形を行うシステムを作ります。以下のようなイメージのものを作りたいと思います。 (ステージ 1) プログラミング (0) 最初の状態 以下の から までの書き換え規則が表示されています。 また、いくつかの式が表示さ…

ビジュアルプログラミング(1)

ビジュアルプログラミングで数式の変形を行うものを作りたいと思います。「Blockly | Google Developers」を使ってみようと思いますが、何ができるのかわからないのでできるかどうかはわかりません。「エレファントな群とリー代数(3) - エレファント・コンピ…