Let's write β

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

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

JAG2011 ProblemA

koukyoukoukokukikou (defvar *qwarty-right* (coerce "yuiophjklnm" 'list)) (defvar *qwarty-left* (coerce "qwretasdfgzxcvb" 'list)) (defun count-hand-change (string) (let ((ch-list (coerce string 'list))) (labels ((%count-hand-change (ch-list…

ICPC2011ProblemA

チェビシェフの定理 (defun sieve-of-erathostenes (num) (let ((sieve (make-array num :initial-element 1))) (setf (aref sieve 0) 0) (loop for i from 1 upto (sqrt num) when (= 1 (aref sieve i)) do (loop for j from (1+ i) until (> (* (1+ i) j) …

ICPC2011 ProblemB

ちょっと時間がとれないので簡単な物ですみません。 (defun balancingp (str) (let ((ch-list (coerce str 'list))) (labels ((%balancing-p (ch-list stack) (if (char= #\. (car ch-list)) (null stack) (cond ((or (char= #\[ (car ch-list)) (char= #\( …

PKU Common Subsequence

さき程のコードをつかって PKU Common Subsequence http://poj.org/problem?id=1458 (defun create-lcs-table (i j) (make-array `(,(1+ i) ,(1+ j)))) (defun last1 (sequence) (typecase sequence (string (aref sequence (1- (length sequence)))) (list …

LCS With Common Lisp

LispでLCS (defun create-lcs-table (i j) (make-array `(,(1+ i) ,(1+ j)))) (defun last1 (sequence) (typecase sequence (string (aref sequence (1- (length sequence)))) (list (nth (1- (length sequence)) sequence)) (vector (aref sequence (1- (le…

ICPC2005 ProblemF

動的計画法 import java.util.*; public class Gathm { static class Person { int id; List<Integer> freeDays; List<Integer> pieaces; public Person(int id) { this.id = id; this.freeDays = new ArrayList<Integer>(); pieaces = new ArrayList<Integer>(); pieaces.add(id); } void addFre</integer></integer></integer></integer>…

ICPC2006ProblemA

Mysterious Game 破壊的に更新する事になるので、Cでも良いかと。 #include <stdio.h> int main() { int m,n; int map[21][21]; int rbX, rbY; while(1) { scanf("%d",&n); if(n == 0) break; int i; int x,y; //initialize map for(y = 0; y < 21; y++) { for(x = 0;</stdio.h>…

ICPC2006 ProblemA

ディリクレの算術級数定理 (defun primep (num) (loop for i from 2 upto (1- num) when (zerop (mod num i)) return nil finally (return t))) (defun find-prime (a d n) (labels ((%find-prime (a d num n) (let ((prime-p (primep num))) (if (and (zero…

ICPC2004 ProblemB

Read and Black (defun list-to-2d-array (list) (make-array (list (length list) (length (first list))) :initial-contents list)) (defun read-map (width height) (list-to-2d-array (loop for i from 1 upto height collect (coerce (read-line) 'list…

ICPC2005 ProblemC

Numerial Systemです。 (defun num-char-p (char) (when (typep char 'character) (<= (char-code #\0) (char-code char) (char-code #\9)))) (defun num-char-to-num (num-char) (- (char-code num-char) (char-code #\0))) (defun num-to-num-char (num) (…

ICPC2005 ProblemB

Make Purse Light! (defun calc-return (money) (multiple-value-bind (500-yen rem) (floor money 500) (multiple-value-bind (100-yen rem) (floor rem 100) (multiple-value-bind (50-yen rem) (floor rem 50) (multiple-value-bind (10-yen rem) (floor …

ICPC2005 ProblemA

Ohgas' Fortune もちろんLis(ry (defun fukuri (money year nenri tesuuryou) (if (zerop year) money (fukuri (- (+ money (floor (* money nenri))) tesuuryou) (1- year) nenri tesuuryou))) (defun tanri (money year nenri tesuuryou) (labels ((%tanri…

ICPC2004 Problem A

Hanafuda Shuffle もちろんLispで (defun create-deck (num) (loop for card from num downto 1 collect card)) (defun cut (cards p c) (let ((head (loop for idx from 1 upto (1- p) collect (nth (1- idx) cards))) (selected (loop for idx from p upto…

ICPC2012 Problem B

さて、ひきつづき、問題Bです。 こちらも、乱暴な事ができるLispの出番です。 (defun convert-to-zero-filled-str (num len) (format nil "~v,'0,,D" len num)) (defun next-num (num len) (let* ((num-str (convert-to-zero-filled-str num len)) (max-num …

ICPC2012 Problem A

ICPC2012の問題が公開になりました。 http://www.psg.cs.titech.ac.jp/icpc/icpc2012/contest/all_ja.html というわけでLispで解いてみましょう。 さて、ProblemAですが、こんな感じですかね。 (defun calc-year-day (year) (if (zerop (mod year 3)) (* 20 …

ICPC2005 ProblemA

Keitai Message これもまぁ素直な実装ね。再帰でやるのがたのしい (defvar *button-table* '((#\. #\, #\! #\? #\Space) (#\a #\b #\c) (#\d #\e #\f) (#\g #\h #\i) (#\j #\k #\l) (#\m #\m #\o) (#\p #\q #\r #\s) (#\t #\u #\v) (#\w #\x #\y #\z))) (def…

特定のフィールドが正規表現にマッチする行を表示

特定の行の中に特定の文字列がマッチするというパターンは普通にgrepをするという事で解決できますし、特定のフィールドに文字がふくまれるというのはそのマッチする文字列の部分だけで良いならawkで抽出してからというものができます。 しかし、特定のフィ…

システムコールの番号を調べる。

最近アセンブラの勉強をはじめまして、フフの表を出力したり素数判定をしたり階乗を計算したりと徐々に勉強してみています。そこで問題になるのが、システムコールの番号です。 一度ヘッダーにまとめても良いのですが、検索できるとなお便利です。そこで こ…

VisualWorksで画像処理 〜バイラテラルフィルタ〜

こちらのページを参考にいたしまして 黄昏に鎮む画廊:ちょっと真面目に画像処理(バイラテラルフィルタ) VisualWorksでバイラテラルフィルタを実装してみました。 filter: anImage w: w s1: sigma1 s2: sigma2 | newImage | newImage := anImage copyEmpty. w…

MCCLIMのメニューの動作を変更

MCCLIMではメニューバーのメニューはマウスを押している間だけ表示され、メニューのアイテムの上でマウスをリリースするとそのメニューのコマンドが実行されるという仕様になっています。 クリックすると表示され、もういちどクリックするまではつねに表示さ…

CONCISEの円形計算尺 No.300

計算尺をあつめるのが以前からの趣味で、僕がうまれた頃の年代にはすでに計算尺が なくなってしまっており、興味をもっても手にはいらない状況に落ちこんでいたのですが、 ネットで時々計算尺をしいれている店を発見し、そこで購入したりしていました。計算…

For文の再初期化式とアセンブラ

for文の再初期化式の中に複数の文は書けるので、Hello,worldを数回出すプログラムは2通りの記述方法があるのですが: #include <stdio.h> main () { int i; for(i = 0; i < 3; i++){ printf("Hello,world\n"); } } という書きかたと #include <stdio.h> main() { int i; for(i</stdio.h></stdio.h>…

続)続)CLでハフマン木

先ほどのグラフだけではハフマン符号を確認するのは大変です。ちょっと時間がそろそろ なくなってきたので、本当は葉でなく節は二重線にするなど、ちょっと工夫をしたいのですが 今はとりあえず、木の左右に0,1をふるだけにしておきます。続きはのちほど (de…

続)CLでハフマン木

とりあえず、先程の関数を変更しまして返り値を 最終結果 途中の各段階のリスト ノード間の接続 という3つのリストを返却するようにしました。 そして、そのノード間の接続から、DOTを吐きだすようにしまして、graphvizで視覚化できるように してみました。 …

CLでハフマン木

寝起きにはプログラミングが一番!というわけで、とりあえず起きてから寝むたかったので 眠けをさますために5分くらいで片手間に書いてみました。 (defun last1 (list) (car (reverse list))) (defun but-last (list) (reverse (cdr (reverse list)))) (defu…

LMMSをつかってみた。

DTMようにLMMSなるツールがLinuxにあると聞きさっそくちょっとだけ使用してみました。 ファミコン風味のホラー風の音源になってます。

ReqToDo

ToDoを他人からたのまれる事がけっこう個人的にあり、そういう時に毎回自分で登録するの面倒だなぁとおもっていたのでSNS上で人にToDoをおくりつけたり、人からもらったりできたら毎回まとめてメールでおくってくれとか言わなくてすみそうだなぁとおもってい…

Githubでリポジトリに関心がある人の言語の傾向をみる。

require 'octokit' #Get infomation by user def user_languages(userName) repositories = Octokit.repositories(userName) langarray = repositories.collect {|repo| repo.fetch("language")} return langarray end def repo_watchers(repoName) watchers…

CLで指定バイトでバイナリデータ出力

ちょっとバイナリストリームとたわむれる必要がありまして、 数値を指定したbyteで入出力する必要がありました (defun read-bytes (in number-of-bytes &key (big-endian nil)) (if big-endian (loop for idx downfrom (1- number-of-bytes) downto 0 sum (*…

Juliaでマルチラインコメント

コメントってけっこうマルチラインで書きたいですよね。 でもどういうスタイルにするかは、まぁjuliaで討論中のようです。 とりあえずマクロで代用しておきましょう。 macro comment(exprs) end @comment begin function sayHello() println("Hello,world") …