タグ

programmingに関するanotherのブックマーク (71)

  • 2008-05-01 夜神月に不足していたもの - 日々是魚を蹴る

    夜神月がまずやるべきは、デスノートにif文とfor文を実装する手段を見つけることだった。仮にも「新世界の神」を志しておきながら、非効率極まりない手作業に頼るしかないとは! 殺戮のプロセスを自動化して放置しておけば、警察にわずらわされることもなかったはずだ。特に、ワイミーハウスの子供たちとの対決に引きずり込まれてからの、夜神月の振る舞いは、まさにバッドノウハウの塊といったありさまで目も当てられない。 彼の限界はそこにあった。彼は「非常にうまくツールを使える人」であって、ハッカーではなかったのだ。デスノートを使って社会をハックしようとしながらも、デスノート自体をハックすることは考えなかった。 デスノートはソースコードが公開されていない強力なツールで、多数の制限がかかっている。もし夜神月がデスノートの動作を逆アセンブルして、そのロジックを解析していれば、プロテクトを解除することも、パッチを当てる

    2008-05-01 夜神月に不足していたもの - 日々是魚を蹴る
  • 独習 Scheme 三週間 Teach Yourself Scheme in Fixnum Days

    非決定性 McCarthy の非決定性オペレータ amb [cite{jmc:amb}, cite{wc:amb}, cite{zmc:amb}] は Lisp 自身と同じくらい古いものですが、Lisp にはありません。amb は 0個あるいはそれ以上の式を引数としてとり、それらの、非決定的な (あるいは「あいまいな」)な選択を作ります。プログラムを意味のあるものに 収束させるこれらの選択を好んでつかいます。ここで、 曖昧選択の深さ優先選択をつかい、他の選択肢を探索するための バックトラックに Scheme の制御オペレータ call/cc を使う amb の Scheme への埋め込みについて検討しましょう。 結果は、拡張言語にたよることなく、Scheme で直接書けるような 探索問題の分野で使用できるエレガントなバックトラッキング戦略が できあがります。この埋め込みは Prolog

    another
    another 2007/12/15
    McCarthyのamb演算子。
  • Ideology - Polyglot

    Compile and run with your favorite compiler and operating system. Notes: We have attempted to use only standard language features. Without the -traditional flag, gcc will issue a warning. When transfering from Linux/Unix to MS-DOS/Windows make sure that a LF is correctly translated into a CR/LF. Keep the blank lines at the start of the program. They are important. 10th Anniversary Edition Polyglot

    another
    another 2007/07/06
    id:yshlさんへ。
  • C と PostScript と Ruby が混ざりません - 週1でも日記

    2007-06-19の真似をして、C でも PostScript でも Ruby でもある Hello world プログラム を書いてみようかと思いたったが失敗。 C と PostScript を混ぜることはできる。 /*(*/ #include<stdio.h> int main(){puts("Hello, C world!");return 0;} /*)clear(Hello, PostScript world!)=%*/PostScript と Ruby を混ぜることもできる。 0%1;puts "Hello, Ruby world!" 2#0(Hello, PostScript world!)= clearC と Ruby も混ぜることができる。 #include/* s='*/<stdio.h> int main(){puts("Hello, C world!");retu

    C と PostScript と Ruby が混ざりません - 週1でも日記
  • 第10回 麻雀の役を判定する:ITpro

    図1に示す(1)から(3)までの麻雀(マージャン)の手牌があります。「あがり牌」はすべて山からツモったものとし,リーチはかけていません。またドラやハイテイ*1なども関係ないものとします。これらの役を判定して,親の場合の点数を計算するプログラムを作ってください。 「ややこしや~ややこしや~」というのは野村萬斎ですが,思わずそううなってしまうことがプログラミングをしているとよくあります。今回の麻雀の役判定は,考えれば考えていくほどややこしく,そうしたものの代表と言えるでしょう。排他処理や優先順位が複雑にからんでいて一筋縄ではいきません。 今回はややこしい組み合わせを解決する方法を考えてみます。麻雀になじみのない方も,ちょっとしたパズル気分で試してみてください。 麻雀の役を考える 麻雀を知らない方のためにルールをおおざっぱに説明しておきましょう*2。麻雀の牌には,大きく分けて「萬子(マンズ)」「

    第10回 麻雀の役を判定する:ITpro
    another
    another 2007/06/05
    中級~上級向け問題。与えられた14枚が和了かどうかを判定するだけでもなかなか難しい。そもそも膨大なローカルルールの取捨選択だけで日が暮れそう。
  • 新言語考えた - まめめも

    テーマは befunge + π計算。 ちなみにπ計算の知識は sumii 様のπ-calculus 超入門を読んだだけしかない。 以下、befunge はみな知っているものとしています。 基部分 実行モデルは基的には befunge で、2 次元上のコードをカーソルが走って fetch しながら実行が進む。初期状態では左上の原点から右方向に向かって走るプロセスが 1 だけ。各プロセスは数値またはチャンネルからなるスタック (っぽいもの) を持っている。 '|' は fork 。進行方向に対して左右に分かれて走り出す。 v > AAA > | > BBB上のコードでは、 AAA と BBB を並列実行する。fork したらスタックは全部コピーされる (fork した後でスタックをいじっても、相方のスタックは変化しない) 。 '&' はチャンネルを生成してスタックに乗せる。'!' は送

    新言語考えた - まめめも
  • A Very Brief Introduction to the Pi-Calculus (in Japanese)

    π-calculus 超入門 π-calculus は、80 年代の終わりごろに Milner らによって提案された並行計算のモデルの一つです。そこでは、プロセスと呼ばれる複数の独立した主体が、通信チャネルと呼ばれるデータの通り道を介して値をやりとりしながら、計算を行っていきます。π-calculus にはいろいろな変種があるのですが、ここではとりあえず次のような構成要素からなるものを考えましょう。 new x . P 新しいチャネル x を作ってから、プロセス P を実行する (channel creation) x![v1, ..., vn] チャネル x に値 v1, ..., vn を送る (asynchronous output) x?[v1, ..., vn] . P チャネル x から値 v1, ..., vn を受け取って、P を実行する (input guard) P |

    another
    another 2007/05/31
    「すべてのものをプロセスで表す」パラダイム。Erlangより遥かに過激。Unixの用語で言うと、名前つきパイプを更にパイプに食わせるのをパラダイムの基礎としている。
  • zick

    駄目大学生のzickと申します。 大学に入ってLispというものを知り、しばらく触ってるうちに、何を勘違いしたのか 「インタプリタがかけそうな気がしてきた」と思い込み、CでLispインタプリタを書き始めました。 関数と変数でネームスペースの違うことに嫌気を感じ、途中でSchemeインタプリタに変更。 半年ほどしてマクロはないけど、一応それっぽいものが完成しました。 そこから調子に乗って、SchemeライクなLispインタプリタ(*)をJavaScriptで書いてみたり、Windows用のゲーム記述言語であるNScripterで書いてみたりしてます。 問題は、インタプリタばっかし作っていて、Scheme自体の勉強をあまりしてないことなんですが(笑) (*)継続がないという意味です 地獄Lisp(JavaScriptによる実装) 地獄Scheme(地獄Lispにcall/ccをつけたもの)

  • site:blog.livedoor.jp dankogai たらい回し関数 - Google 検索

    2010/03/15 · 第4講 基関数を修了するや、突然関数定義、なんと大それた… 第5講 今度はcond、再帰と再起を混同せぬように; 第6講 またも再帰するから再帰なのだ; 第 ...

    another
    another 2007/05/25
    小飼さんはたらい回しが好きすぎる。
  • 逆ガベージコレクション

    逆ガベージコレクションというのを考えてみた。ガベージコレクション(ガベコレ)というのは、コンピュータがプログラムを動かす時に裏で働く大切な仕組みで、不要になったメモリを集めて再生する役割を持つ。ガベコレがあるおかげで、プログラマは煩雑なメモリ管理を忘れて論理に徹する事が出来る。 逆ガベコレというのは、メモリのコピーが当に必要になった時に自動的にコピーする仕組みである。copy on write に似ているが、逆ガベコレを使うと、プログラマはメモリをコピーする必要が無くなる。 プログラマがメモリをコピーして何か悪い?あるデータが壊れてしまう可能性がある時にプログラマはコピーを行う。データが壊れるかどうかというのはあらかじめ分かりようが無いので、ライブラリなんかだと念のため一応コピーする事がある。例えばチャットを HTTP 経由で行うプログラムなんかを考えてみよう。HTTP を実現するための

    逆ガベージコレクション
  • one liner の訳語が一行野郎なのが気に入らない - 週1でも日記

    せいぜい数十文字の情報しかないのに野郎なんて人間ぶった顔しやがって、手前なんぞよりウイルスの方がはるかに情報量が多いじゃねえか、この一行野郎が、と思う訳です。 でもそれは私が one liner に人格を感じられないことに問題があるのだと思います。one liner を一行野郎と呼ぶ人たちは、きっと one liner に人格があるように感じているのだろうと思います。そういう人たちにとっては、一つ一つの one liner が、熱血だったり冷酷だったりツンデレだったり素直クールだったり攻めだったり受けだったり剛毅果断だったり優柔不断だったり派手だったり地味だったりそんな一つの形容詞では語れない複雑な性格であるように感じていて、それぞれが特別なオンリーワンなんだろうなと思います。

    one liner の訳語が一行野郎なのが気に入らない - 週1でも日記
  • http://www.hirax.net/articles/2007/04/29/dekirukana9_nameless

    another
    another 2007/04/30
    無名関数(Mathematicaでは「純関数」という)の敷居の高さについて。/ Hiraxさんが復帰したようでなにより。
  • AAAAAAAAAAAAAA!!!! - Esolang

    AAAAAAAAAAAAAA!!!! is an esoteric programming language by User:Zzo38 (probably) which consists entirely of the letter A, spaces, commas, and exclamation points. If you type a line beginning with @ it can be a comment and contains anything, but it must be removed from the program before the interpreter can use it. If you type a newline it can count as a space, and multiple consecutive spaces or exc

    another
    another 2007/04/27
    whitespaceとかの同類ですか。
  • anarchy golf の inverse matrix - 週1でも日記

    実は私が出題者です。*1ということで、感想とか問題の種明かし的なものを書いてみます。 問題文 問題文の英語が変だったらごめんなさい。というか、どこが変か教えてください。 sample input と sample output まず、(Square root に対する感想を読んで)入出力に小数があると、小数の出力フォーマットで言語毎に有利不利がでそうだなと思ったので、行列の要素が全部整数になるようにしてみました。こういう条件をつけると多分行列式は 1 か -1 になってしまうはずです。なので、sample input は、単位行列からスタートして、 行の入れ替え 列の入れ替え ある行に別の行の整数倍をしたものを足す ある列に別の列の整数倍をしたものを足す をランダムに適当な回数繰り返せばいいかな、と思い、下の方にあるプログラムを使って作りました。対応する output は Maxima を

    anarchy golf の inverse matrix - 週1でも日記
    another
    another 2007/04/21
    「実は私が出題者です。」!
  • Welcome To PKU JudgeOnline

    Problem Set is the place where you can find large amount of problems from different programming contests.Online Judge System allows you to test your solution for every problem. First of all, read carefully Frequently Asked Questions. Then, choose a problem, solve it and submit your solution. If you want to publish your problems or setup your own online contest, just write us. Peking University ICP

    another
    another 2007/02/25
    そうそう、これこれ。
  • anarchy golf

    Anarchy Golf This is a golf server. You can enjoy short coding here in several languages (115 languages). The purpose of this server is not serious competition. Joke problems are welcomed and you can speak freely about problems and can release spoilers. For serious competition with ranking, enter Code Golf. IRC channel for this golf server: #anagol in freenode. Please feel free to join the channel

    another
    another 2007/02/25
    北京大学も似たようなことをやってたな。
  • code golf 難しい - 週1でも日記

    anarchy golf の e を小数点以下 100 桁まで出力するプログラム。 i,j,a[17],b[17],x=1e7;main(){*a=*b=100;for(;++i<75;j=0)for(;j<16;){b[j+1]+=b[j]%i*x;b[j]/=i;a[j-1]+=(a[j]+=b[j])/x;a[j++]%=x;}for(;j<15;)printf("%d",a[j++]);} 答えをそのまま出力した方が短い。 あと、使用可能言語に PostScript を加える予定はありませんか。 追記: 5 バイト縮んだけどまだ 153 バイト。 i,j,a[17],b[17],x=1e7;main(){for(*a=*b=100;++i<75;j=0)for(;j<16;b[j+1]+=b[j]%i*x,b[j]/=i,a[j-1]+=(a[j]+=b[j])/x,a[j++]%

    code golf 難しい - 週1でも日記
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    another
    another 2007/01/06
    技術者としてのイン殺さん萌え、と主張しておく。
  • 2006-12-20

    先日の あなたならどうお書きになります1.0 が、はてなブックマークで 15ユーザーとなり、鍋あり谷あり史上2番目となった。 誰にも気づかれずにひっそりと締め切りを迎える可能性の方が高いと考えていたので大変驚いている。 で。 http://d.hatena.ne.jp/Nabetani/20061217/tb にトラックバックを頂いた方の他に、 jijixi's diary - あなたならどうお書きになります1.0 (鍋あり谷あり) でご回答いただいた。ありがとうございます>jijixi さん、sumim さん、矢吹さん ソースはないけれども 2006-12-19 - 甘くておいしいおイモだよー - 断片部 でもご検討いただいているようで、こちらもありがとうございます。>SweetPotatoさん で。 sumim さんの d:id:sumim:20061220:p1 は、ruby なので

    2006-12-20
    another
    another 2006/12/21
    あとでやるかも。/ 使おうとした言語が手元にinstallされていなかった……。
  • 2006-12-19

    ふと、 main = 195; とかやって喜んでいた私はバカだったんじゃないかと思いました。 Binary 2.0 などとうかれてほとんどバイナリのコードをゴルフに submit してたのはどうなのか、と。プログラムは ASCII で書くべきだったんじゃないでしょうかと。それもメンテナンスしやすいように、 isprint が true を返すような文字で書くべきではないのか、と。 とりあえず Hello, world! 書きました。そのままコピペでたぶん最近の x86 & linux & glibc なら動きます。それ以外の環境では無理です。 char main[]="`j X$@P[PYPPPPX4.4 PZUX, P^XH,=)F(P_X3F()8)8@)8@@)8)8@PYX@@@@CQBaGHello, world!\n"; int 0x80 とか ret とか ASCII の範囲

    2006-12-19