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

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

不完全性定理(4)

『不完全性定理とはなにか (ブルーバックス)』の不完全性定理の証明とチューリング機械の停止問題の証明について考えると、チューリング機械の停止問題の証明ではチューリング機械が停止するかどうか判定できると仮定したのに対して、不完全性定理の証明では…

不完全性定理(3)

『不完全性定理とはなにか (ブルーバックス)』の不完全性定理の証明をプログラミング言語を使って書き直していきます。しかし、すべてプログラミング言語のようにはできないので、まずはデータをプログラミング言語の式のように表すことを考えます。 不完全…

今後の目標(1)

「不完全性定理」の証明を書き直そうとしていたら新年になってしまいました。今後の目標を書いていこうと思います。毎年何か書こうと思っていたのですが、PCが壊れてから書いていませんでした。 このブログについて サーバーで永久に動作するプログラムを論…

不完全性定理(2)

『不完全性定理とはなにか (ブルーバックス)』では「チューリング機械の停止問題」を参考にして「不完全性定理」を考えるということなので、前回は「チューリング機械の停止問題」について調べてみました。チューリング機械を扱うのではなく、無限のメモリー…

中間報告(16)

ここの主な目的はサーバーのプログラムをブラウザーから更新できるようにするための理論を考えることです。ブログなどではブラウザーから更新することができるのですが、サーバーのプログラムを更新するというものではないため、多くの人がブログなどを書い…

不完全性定理(1)

『不完全性定理とはなにか (ブルーバックス)』という本を見ると、不完全性定理について調べるためのヒントがいろいろ書かれていたので少し調べてみようと思います。また、ビジュアルプログラミングで何かやる例にすることができるかもしれないと考えています…

中間報告(15)

ビジュアルプログラミングの調査 「Blockly | Google for Developers」、「Charts | Google for Developers」をTypeScriptから使うことができるようになりました。 ビジュアルプログラミングによる数式の変形 通常の数式の変形では難しいことをビジュアルプ…

検証的プログラミング(3)

置換のパリティー(3) 前回のコードを書き直して、ソートの中でチェックする項目を変更しました。ソートの中で使う条件をテストする項目を追加しました。置換を表すクラスを Permutation とします。 の は固定とし、最初に設定します。互換を表すクラスを Exc…

検証的プログラミング(2)

置換のパリティー(2) 置換を表すクラスを Permutation とします。 の は固定とし、最初に設定します。互換を表すクラスを Exchanger、基本互換を表すクラスを Ladder とします。乱数で任意の置換を作成し、条件を満たすかどうかをチェックします。 共通関数 …

検証的プログラミング(1)

ビジュアルプログラミングで、数式で表すのが難しいものに関する証明をやろうとしていたのですが、Blocklyを使って行おうとするとブロックを組み合わせるときに選択することは難しいということがわかりました。そこで、プログラム検証のようにプログラムを書…

ビジュアルプログラミング(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) - エレファント・コンピューティング調査報告」で取り上げた、置…

中間報告(14)

「Blockly | Google for Developers」の調査 「関数のグラフ(Blockly)」 「プログラム電卓(Blockly)」 に加えて 「フラクタル(Blockly)」 「ブロックロージャー」 を作成しました。自力でクラスを作れば「Blockly | Google for Developers」、「Charts | Goo…

クロージャーの調査(3)

プログラム電卓(Blockly)へのクロージャーの導入(2) 前回説明した言語を改造してBlocklyを使ったクロージャー調査用の言語を作成します。 数値と真理値の計算 変数 [変数] を [値] と定義 [ステートメントブロック] 変数 [変数] に [値] を代入 [ステートメ…

クロージャーの調査(2)

プログラム電卓(Blockly)へのクロージャーの導入 前回の「クロージャーの調査(1) - エレファント・コンピューティング調査報告」では「プログラム電卓」にクロージャーを導入するという方針だったのですが、方針を変えて「プログラム電卓(Blockly)」でクロー…

フラクタル(4)

「Blockly デベロッパー ツール | Google Developers」を使ってフラクタルを記述する「フラクタル(Blockly)」では、JavaScriptで記述できるものと同様のものをBlocklyで書いて「変換リスト」を作成するようになっています。(バージョン1)これを改造して、バ…

フラクタル(3)

Mathematics and Computingに掲載した「フラクタル1」はJavaアプレットを使用していますが、これをJavaScriptで書き直したものを数学とソフトウェアのページの「フラクタル1」に掲載しました。 使い方 「フラクタル記述言語」 (誤ってこのファイルを上書きし…

ビジュアルプログラミング(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) ブロックを選択する領域(ツールボッ…