2013-01-01から1ヶ月間の記事一覧
cl-mazeという名前でgithubに置くことにした、前の迷路を構築するプロジェクトをいくつかアップデートしました。 部屋をroomというstructで管理する事にした Dijkstra法をもちいて解答を計算するようにした 以下は、そのメソッドと表示される結果 (defmethod…
ローマ字入力の文字をひらがなの文字に変換してみました。 まだ異常入力への対応やら小文字への変換やら濁音拗音促音などの対応とかはしてませんけど 基礎的な変換はできてます。 (defparameter *boin-table* '(("a" . "あ") ("i" . "い") ("u" . "う") ("e"…
LispbuilderSDLを利用しての可視化をしました、 あと、アルゴリズムの実装にミスがあったのでそちらも修正してちゃんとした迷路ができるようになりました。 (ql:quickload :lispbuilder-sdl) (ql:quickload :lispbuilder-sdl-gfx) ;;迷路のデータ構造 (defcl…
迷路を生成したいとおもい、Lispで簡単なクラスタリング法で生成してみました。 ;;迷路のデータ構造 (defclass <maze> () ((width :initarg :w :accessor w) (height :initarg :h :accessor h) (rooms :initarg :rooms :accessor rooms))) ;;部屋の情報を管理する</maze>…
Syracuseアルゴリズム(3x+1問題とも)の可視化というのは色々な方法でおこなわれていてNumoebaなどがそうでしょう。(Numoebaの可視化したもののリンクがどこかにあったはずなのですが、失念してしまいました。どなたかご存知の方がいらっしゃったらコメント…
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で...面倒.. #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>…
グラフ上でダイクストラをするのをJavaで書くとすでに優先度付きキューが提供されているので多少楽はできるのですが、Cで書きたい場面もあるのです。 そこで、Cでも優先度付きキューをつかいたいです。優先度付きキューのインターフェイスを提供するなら 実…
停止性を保証する必要はないという事で最終状態はacceptになるかどうかだけで良いという 事でerror状態を削減したり、メモリーというのはそもそも無いという事でメモリーを削除したり make-machine時に利用可能な記号列を渡す事で先に定義がただしいかチェッ…
昨日帰省から帰ってきていましたが飛行機の中で特にする事がなく、コンパイラの本を読んですこしつかれたのでコードを書く事にしました。そこでチューリングマシンでもつくってみたらおもしろいだろうなぁとおもい 書いてみたいのが以下です。 ;; ;; Infinit…