Let's write β

プログラミング中にできたことか、思ったこととか

2013-01-01から1年間の記事一覧

迷路生成をLispでPart2

LispbuilderSDLを利用しての可視化をしました、 あと、アルゴリズムの実装にミスがあったのでそちらも修正してちゃんとした迷路ができるようになりました。 (ql:quickload :lispbuilder-sdl) (ql:quickload :lispbuilder-sdl-gfx) ;;迷路のデータ構造 (defcl…

迷路生成をLispで

迷路を生成したいとおもい、Lispで簡単なクラスタリング法で生成してみました。 ;;迷路のデータ構造 (defclass <maze> () ((width :initarg :w :accessor w) (height :initarg :h :accessor h) (rooms :initarg :rooms :accessor rooms))) ;;部屋の情報を管理する</maze>…

Syracuseアルゴリズムを可視化したい。

Syracuseアルゴリズム(3x+1問題とも)の可視化というのは色々な方法でおこなわれていてNumoebaなどがそうでしょう。(Numoebaの可視化したもののリンクがどこかにあったはずなのですが、失念してしまいました。どなたかご存知の方がいらっしゃったらコメント…

Floydのアルゴリズム

Dijkstraも書いたのですが、そちらはコードの量が多いので割愛。 FloydのアルゴリズムをCで実装 /* * map.h */ #ifndef _MAP_H_ #define _MAP_H_ #include <limits.h> #ifndef INF #define INF (INT_MAX / 2) #endif struct map { int size; int **data; }; struct map</limits.h>…

グラフデータ構造をCで

グラフのデータ構造をCで...面倒.. #include <stdio.h> #include <stdlib.h> #include <stdarg.h> #include <stdbool.h> struct edge { int into; int weight; }; struct node { bool visitedp; int distance; struct graph *g; //Index in graph int id; struct edge **edges; }; struct edge* mk_ed</stdbool.h></stdarg.h></stdlib.h></stdio.h>…

ねじれヒープを利用した優先度付きキューをCで

グラフ上でダイクストラをするのをJavaで書くとすでに優先度付きキューが提供されているので多少楽はできるのですが、Cで書きたい場面もあるのです。 そこで、Cでも優先度付きキューをつかいたいです。優先度付きキューのインターフェイスを提供するなら 実…

チューリングマシンのエミュレート(2) 定義の厳密化

停止性を保証する必要はないという事で最終状態はacceptになるかどうかだけで良いという 事でerror状態を削減したり、メモリーというのはそもそも無いという事でメモリーを削除したり make-machine時に利用可能な記号列を渡す事で先に定義がただしいかチェッ…

チューリングマシンのシミュレート

昨日帰省から帰ってきていましたが飛行機の中で特にする事がなく、コンパイラの本を読んですこしつかれたのでコードを書く事にしました。そこでチューリングマシンでもつくってみたらおもしろいだろうなぁとおもい 書いてみたいのが以下です。 ;; ;; Infinit…