どう書くorgに関するnishiohirokazuのブックマーク (121)

  • ポーカーの役判定 - sshi.Continual

    http://d.hatena.ne.jp/argius/20080117/1200590510 を見ておもしろそうだなと思ったので書いてみた。そしてどう書く?org(http://ja.doukaku.org/121/)にも久し振りの投稿。 haskellではデータ構造が簡単に定義できるので、これくらいでも使いたくなる。コードの半分くらいがデータ構造の定義と文字列とのインターフェイスになってしまった。役までdataを使って書いてるのは、テストコードをちゃんと書こうと思ってやめたなごり。 入力チェックは全くやってないので、変な入力がはいるとエラーで落ちるか変な結果がでます。 testを実行するとこんなん。 ("SQSJSASKST",Royal flush) ("D9D7D6D5D8",Straight flush) ("C2D2S2H3H2",Four of a kind) ("C2D3

    ポーカーの役判定 - sshi.Continual
  • 和暦変換(どう書く?orgに投稿) - ブログ日記

    昨年大晦日に出題されていた、西暦の入力から元号表示の和暦に変換する、というお題。 元号の切り替わりタイミングとなる閾値の配列を用意した上で、入力された日付をpushしてsortし、そのindexを調べることで元号を判定させている。(明治6年より前を「範囲外」にしているのは、太政官布告により太陽暦に切り替わったのが、明治6年元旦であるからです。) で、大胆にも家サイトに投稿。 require 'date' DAYS = [Date.parse('1873/1/1'), Date.parse('1912/7/30'), Date.parse('1926/12/25'), Date.parse('1989/1/8')] GENGO = ['明治', '大正', '昭和', '平成'] def format_date(d, i) raise if d < DAYS[0] d = d + 365

    和暦変換(どう書く?orgに投稿) - ブログ日記
  • 2008-01-22

    今日はこれから動き出す為の準備をしていた。 明日から早速取りかかります。 これだけしか書かないのもアレなので、ちょっと前の事を書きます。 SICP読書会を研究室の有志でやっているのですが、問題を解いてきた答えに個性があって面白かったという話。 例えば問題1.3の「3つの数の中で大きい方の2つの数の二乗和を求める関数」ではこんな感じでした。 俺 (define (>= x y) (not (< x y)) (define (xor a b) (if a (not b) b)) (define (func1-3 a b c) (+ (cond ((and (> a b) (>= a c)) (* a a)) ((and (> b a) (>= b c)) (*b b)) (else (* c c))) (cond ((xor (> a b) (>= a c)) (* a a)) ((xor (

    2008-01-22
    nishiohirokazu
    nishiohirokazu 2008/01/26
    ←欠点がないつもりで公開したコードの欠点を指摘され、削除も編集もできないというあたりがコロシアム
  • ポーカーの役判定 - argius note

    最近ちょっとHaskellやる気が出てきたので、昨日の(どう書く?orgの)Ruby版をベースにHaskellで書いてみました。ふつけるの第8章までに登場するもの以外は、たぶんほとんど使っていません。 自分のHaskell力では、今のところこれが精一杯かな。なので、あまりきれいとは言えないコードですが、この状態で上げてしまいます。 import System import List import Char main = getArgs >>= print . pokerHand . head pokerHand :: String -> String pokerHand s -- cards | isFlush s && isRoyalStraight s = "Royal Flush" | isFlush s && isStraight s = "Straight Flush" | is

    ポーカーの役判定 - argius note
  • 2008-01-13

    Rubyでやった。 とりあえず、シンプルにfindモジュールを使ってみた。 違う書き方もあとで考えて書く。 お題 指定したフォルダ以下にある、ファイル名が"~"で終わるファイルを削除するプログラムを作ってください。指定したフォルダの中にあるフォルダのさらに中にあるファイルも削除の対象です。 コード # Findモジュールは再帰的にファイルを探す為のモジュール require "find" # パスを書く targetDir = '対象のディレクトリのフルパスを指定' # 正規表現を使ってファイル名を判断し削除。 Find.find(targetDir) {|file| File.delete(file) if file.to_str =~ /~$/} Perlでもやってみた。 再帰処理を含めてオレオレ実装した。 晒すのが恥ずかしいコード・・・ ご指摘大歓迎です。(^^; コード use s

    2008-01-13
  • 2007-12-22 - 御玉杓子スパイラル

  • Javascript で実装した Ruby インタプリタ JSRuby 0.1 リリースしました。 (nakatani @ cybozu labs)

    « MyMiniCity 日語化 | メイン | JSRuby から jQuery を使う ( Javascript 連携 ) » Javascript で実装した Ruby インタプリタ JSRuby 0.1 リリースしました。 あけましておめでとうございます。 1月からサイボウズ・ラボのオフィスが引っ越しました。新年から気分も新しくぶりぶり仕事します。よろしくです。 というわけでちょっとずつ作っていました Javascript で実装した Ruby インタプリタの "JSRuby" を一区切り付けるべくバージョン番号を付けてリリースしました。 JSRuby Project Page (CodeRepos) http://coderepos.org/share/wiki/JSRuby JSRuby Test Page http://labs.cybozu.co.jp/blog/naka

  • 2008-01-10

  • 2008-01-05

    どう書く?orgで出題されていた,自分のLisp力でも解けそうな,それでいてLispで書きやすそうなお題をピックアップ 隣合う二項の差 - どう書く?org cdr再帰に凝っている自分としては,ループは再帰で書きたい.まさしくcdr再帰(笑) (defun diff (lis) (cond ((> 2 (length lis)) nil) (t (cons (- (cadr lis) (car lis)) (diff (cdr lis)))))) (diff '(3 1 4 1 5 9 2 6 5)) (-2 3 -3 4 4 -7 4 -1) 意外にもレスしている人たちはloopとかdo使って処理してた.計算コストを考えたら計数反復ですが. そしたらすごい人がもっと短いコード書いていた. (defun diff (lis) (mapcar '- (cdr lis) lis))あれ?なんで

    2008-01-05
    nishiohirokazu
    nishiohirokazu 2008/01/06
    mapcarの解説
  • はてなブログ | 無料ブログを作成しよう

    ネイルで使う材料で、DIY時の木割れやネジ跡を派手にしたらかわいい OSB合板でちょっとしたボックスをつくりました。 ビス止め下手すぎて木を割ったり穴あけすぎたりした場所に、好きな派手色の樹脂を詰めてパテ代わりにしてみました。 ちょっと某HAYっぽみ出て可愛かったので、自分用にメモです。 手順 塗装 派手色グミジェルで失敗部分…

    はてなブログ | 無料ブログを作成しよう
  • 駅前 LL - 日本 GNU AWK ユーザー会 0.2

    404 Blog Not Found:並列処理事始 - 書評 - プログラミング言語Erlang入門 Erlang は自分の肌に合わないとしても、 駅前入学ならぬデスクトップ入学が当に簡単に出来るのだ。この言葉が面白かった。 例えば、各言語用のチャンネルがある IRC と出題用の IRC チャンネルがあって、同時に複数言語で解説してくれるようなものとかがあると面白いかな。IRC じゃなくて GNU screen で共有して表示させるだけの単純なものでも面白いかもしれません。 みんなバラバラのアルゴリズムで解かれても混乱するだけですから、解説員は事前にネゴっておいて、「じゃ、今日は二分検索で解こうな!」と打ち合わせをしておいて、それっぽく解説します。IRC とか GNU screen を使うので、自分が聞きたくないところは聞かなくていいわけです。 ネタとしては 1 週間に 1 回くらいの頻

    駅前 LL - 日本 GNU AWK ユーザー会 0.2
  • あみだくじを作ってみる。 - A-Life on The Five Strings

    言語を練習するとき、面白い問題があると便利ですね。どう書く?orgではそんな問題が沢山掲載されています。そこに乗っていた二つの問題を解いてみたのでメモしておきます。コードが稚拙なので投稿するのは憚られますが・・・。 まず1問目の問題を解きます。これは、与えられたあみだくじを解くだけの問題です。基的な解法としてはあみだくじの行数分ループさせ、最初に与えられた1行をあみだくじに従って入れ替える事が考えられますが、この方法は既に投稿されているので、別の方法をとってみることにします。 class Walker LINE_MOVE_NUM = 2 attr_reader :character attr_accessor :x, :y def initialize(character,x,y) @character = character @x = x @y = y end def go_to_ne

    あみだくじを作ってみる。 - A-Life on The Five Strings
  • 2007-12-07

    今のところ Volta サンプル はどれもブラクラ並の重量を誇るので,下手にリンクを張らない方が良いのかもしれませんが,Utah Teapot サンプルを見ていると PC-9801 VM で動いていたデモプログラムを何となく思い出してつい書いてみたり.クリックするときはタスクマネージャを起動してダウンロードサイズに注目. http://labs.live.com/volta/samples.aspx:image:large Volta Sample Applications 半分予想はしていたものの,C:\Program Files\Microsoft Live Labs Volta\Cache\ の下にあるものを実際見てみると正直なところ引きますな.とりあえずうちの環境には合計 56.4 MB,総計 7021 個の JavaScript ファイルがありました.てか中身が…… box 化さ

    2007-12-07
    nishiohirokazu
    nishiohirokazu 2007/12/08
    どう書く?org に C# + Volta のコードで投稿しまくるってのはありなのかも.←ありです
  • 素数生成 - 99円のへたれ日記!

  • 各桁の数字を取得する - シリコンの谷のゾンビ

    ↑の模範解答を読んでいたら.Dan Kogai氏の神がかったソースコードを発見. 各桁の数字を取得するのに,こうすればいいということを今更ながら知る. my $n = 4649 my @d = ( $n =~ /(\d)/g ); print "@d\n" 出力結果: 4 6 4 9 その発想はなかったわww ものすごくPerlらしい.

    各桁の数字を取得する - シリコンの谷のゾンビ
    nishiohirokazu
    nishiohirokazu 2007/12/08
    Dan Kogai氏の神がかったソースコードを発見
  • どうかく? ココアる - がこんがこんぶごる

    エロと風俗情報満載 どう抜く?にて、Objective-Cの項目でid:Psychsさんがやたら頑張っておられます。 素晴らしい限りです。 どう書く?org 言語の詳細: Objective-C 余裕があったら自分も書きたいけど、今は Mac OS X をロクに触れない職場なのでしばらくは無理ぽです。

    どうかく? ココアる - がこんがこんぶごる
  • やっぱりWebでプログラミング? - hoge1e3の日記

    どう書く.org - http://ja.doukaku.org/ いろんなアルゴリズムを出してその解をいろんな言語で投稿するサイト. なんか,これこそWebで実際にプログラムが動かせたらもっと楽しいだろうに,と思わせてくれるサイトである. どんな言語で投稿されたかも一覧ででてる.Python,Smalltalk派多数.ついでやっぱりRubyとHaskell.... なでしこ,HSPもある. こう考えると Aroe という酔狂な言語でしかもWebでプログラミング,というのは刺激が強すぎるかもしれない.Webで既存の言語をなんでも動かせます!という仕組みがあればいいかな. それと,学生が書いたプログラミングの課題をみるのが結構大変なので,やっぱりWebで公開させたい.相互評価もさせたい.Aroeは課題提出や相互評価の仕組みとか皆無なので,moodle などのモジュールにしてしまうのがよさそう

    やっぱりWebでプログラミング? - hoge1e3の日記
  • http://d.hatena.ne.jp/t_ishida/20071112

  • 8Kは福祉 on Twitter: "doukaku.org は行番号の表示方法に気をつかっていてすばらしい doukaku++"

    nishiohirokazu
    nishiohirokazu 2007/11/25
    ←ありがとうございます!
  • 重複なし乱数 - シリコンの谷のゾンビ

    最近手を動かしていないので,寝る前に簡単なコーディングをしたくなる.どう書く?orgを探してすぐに書けそうなものを選んだ. どう書く?org 重複無し乱数 実はアルゴリズムを全然知らない自分は,昔ビンゴゲームをつくるときにオブジェクト向で実装することでこれを実現していた.Listからランダムに選択し,\ 選ばれた要素を取り出してリスト長を縮める,という方法. Cで実装するにはどうしたらいいだろう,と思って考えていたら,素直な解が思いついた. 1からNの整数が入っている配列から,ランダムに選択されたk番目の数とN-1番目との数を交換して,N-1の大きさの配列と考えて同じ動作を計N回繰り返す,と\ いうもの. Cで,と言っておきながら,Cの乱数が嫌いなのでJavaで書く. import java.util.*; class exrandom{ public static void main(S

    重複なし乱数 - シリコンの谷のゾンビ