タグ

programmingとcomputer_scienceに関するInoHiroのブックマーク (12)

  • 連結リスト - Wikipedia

    連結リスト(れんけつリスト、(英語: Linked list)は、最も基的なデータ構造の1つであり、他のデータ構造の実装に使われる。リンクリスト、リンクトリストとも表記される。 一連のノード[要曖昧さ回避]が、任意のデータフィールド群を持ち、1つか2つの参照(リンク)により次(および前)のノードを指している。連結リストの主な利点は、リスト上のノードを様々な順番で検索可能な点である。連結リストは自己参照型のデータ型であり、同じデータ型の別のノードへのリンク(またはポインタ)を含んでいる。連結リストは場所が分かっていれば、ノードの挿入や削除を定数時間で行うことができる(場所を探すのにかかる時間はリスト上の順番の条件などにも依存するし、後述する片方向リストなのか双方向リストなのかにも依存する)。連結リストにはいくつかの種類があり、片方向リスト、双方向リスト、線形リスト、循環リストなどがある。

    InoHiro
    InoHiro 2009/05/19
    極めて詳しい
  • 基盤系プログラマの実践的教育が必要だ - 未来のいつか/hyoshiokの日記

    ここで言う基盤系というのは、OSとかRDBMSとかプログラミング言語処理系とか、そーゆー奴ね。アプリケーションプログラムとかWebサービスとかを支える縁の下の力持ち。その基盤を作るプログラマをどのように育てるかというお話。 まあ、ハッカー予備軍をどのように育成するか。ハッカーって、育てるとか教育するとか、そーゆーものではなく勝手になるものだから、そもそも、そんなものはありえないという議論もある。確かに天才というのは、天才なので、教育がどうだこうだということはないのだけど、一般的なプログラマというのは、一般的な教育プログラムである程度底上げ的なことは出きると思う。 例えば、PostgreSQLの開発者を考えてみる。ちょっとRDBMSに興味がある、だけどどこからとっかりをつけていいのかよく分からないという初心者がいたとする。今ある、OSS利用者教育プログラムをいくらやったところで開発者にはなれ

    基盤系プログラマの実践的教育が必要だ - 未来のいつか/hyoshiokの日記
  • 自然言語処理は Python がいちばん - 武蔵野日記

    現在大学1年生の人で3年後には NAIST に (というか松研に) 来たいという人から「どんなプログラミング言語やっておくといいですか」と質問されたりするのだが、なかなか答えるのは難しい。自分は PerlPython がメインでときどき C++/C# を使ったりするのだが、どれが一番いいかはなんとも言えないので、自然言語処理以外に転向する可能性も考えると、C とか C++ とか Java とか(授業でそちらをやるのであれば)を最初の武器に選んだ方がいいのでは、と思ってはいる。 そんなこんなで最近 Hal Daume III (機械学習を用いた自然言語処理では非常に有名な人) のブログで Language of Choice というタイムリーなエントリーが出ていたので、紹介すると、「それなりに大きな自然言語処理のプロジェクトでどのプログラミング言語を使うのか」というアンケート結果が出

    自然言語処理は Python がいちばん - 武蔵野日記
    InoHiro
    InoHiro 2009/03/30
    自然言語処理とPython
  • 良いプログラマを目指すなら「Java並行処理プログラミング」は今すぐ読むべき - higepon blog

    Java並行処理プログラミングを読み終えた。ここ 1 年に読んだ技術書の中でダントツのベスト。(2位はWorking Effectively With Legacy Code) 「Javaだから関係ない」と思った人にこそ読んで欲しい。僕もここ数年 Java のコードなど一切書いていないが、このを読んで得たものは非常に大きかった。 このでは マルチスレッドプログラミングにおける問題と背景、その対処方法 Java が提供している API の設計と実装 を解説している。分かりやすさとレベルの高さを兼ね備えたとても良い。翻訳も最高。 僕はこのを読んで、Java の並行処理プログラミングは、想像を遙かに超えて進化している事に驚きを隠せなかった。何回も twitterJava すげーと叫んだ。 これを読んでしまうと、最近僕が熱心な Scheme も含めて、自分の身の回りにあるプログ

    良いプログラマを目指すなら「Java並行処理プログラミング」は今すぐ読むべき - higepon blog
  • プログラマは世界をこう視る

    今回、縁があってこのの出版のお手伝いをさせていただきました。内容はやや難し目のパズル問題集。すべての問題に目を通して、紙と鉛筆で解けるものもあれば、実際に手を動かしてプログラムを書いてみたり。前半は、プログラマでない人でも取り組めるようになっていますが、お勧めは実際にプログラムを使って解く後半。 プログラミングコンテストに挑んだことのある人には、もうおなじみの考え方だと思います。普通の人間ならやらないけれど、コンピュータというお供がいると、すべての可能性を調べ上げるような愚直な方法でも着実に実行してくれる。その様子を見て、人間がより良いアルゴリズムを思いつく、というサイクルが問題を通して学べます。

  • 変数の型って萌えるよな:アルファルファモザイク

    最近、精神的におかしいと自分でも感じています。 精神科に行こうと思うのですが、どういった治療をするのでしょうかね? 具体的には、intと見ると、32bit、あ、32歳くらいの人とやりたいな! と思ってしまうくらい、精神的に病んでます。 もう少し例をあげると、女子高生より30歳くらいのお姉さんが好きになりました。

    InoHiro
    InoHiro 2009/03/02
    末期。しかし「unsigned short」はいいかもしれない。いい。
  • 404 Blog Not Found:プログラマーでなくても名前ぐらい覚えておきたいアルゴリズムx10

    2007年11月26日18:15 カテゴリMathLightweight Languages プログラマーでなくても名前ぐらい覚えておきたいアルゴリズムx10 ぎくっ あなたが一番好きなアルゴリズムを教えてください。 また、その理由やどんな点が好きなのかも教えてください。 - 人力検索はてな なぜぎくってしているかというと、実はすでにアルゴリズムの発注を受けているからなのだ。いつまでも伏せておくのもなんなので、ここにえいやっとdiscloseしてしまうことにする。 アルゴリズム大募集! C&R研究所 - トップページ その下書きもかねて、そこでも紹介しないわけに行かないメジャーなアルゴリズムをとりあえず10個紹介しておくことにする。 ユークリッドの互除法(Euclidean algorithm) その昔(数百年ほど前)は「アルゴリズム」といえば、「手順一般」を指すのではなく、この「互除法

    404 Blog Not Found:プログラマーでなくても名前ぐらい覚えておきたいアルゴリズムx10
  • FF(16進数の掛け算)を覚えよう - やねうらおブログ(移転しました)

    最近、あるプログラマと話していて気づいたのだけど、彼は16進数の2桁と1桁との掛け算(FDh×5とか)が出来ない。やり方自体を知らないのだ。彼はWindowsの電卓を立ち上げて計算していた。 そのときは「プログラマでなくともこんなこと知ってて当然だろ!」と思ったのだけど、その後、10人ぐらいのプログラマに出来るかどうか聞いてみたが誰も出来ない。 結局、「普通は出来ない」のだと私は理解した。しかし16進数の掛け算はそんなに難しくない。私が子供のころには、まわりにFF(1×1=1に始まって、F×F=E1まで)を丸暗記している人がいっぱいいた。情報教育の一環として中学か高校で教えても計算の仕方ぐらい教えればいいのになぁと思っている。 前置きが長くなったが、以下にやり方などを書いておく。 ■ 16進数に馴染もう 16進数では、A = 10 , B = 11 , C = 12 , D = 13 ,

    FF(16進数の掛け算)を覚えよう - やねうらおブログ(移転しました)
    InoHiro
    InoHiro 2009/01/08
    10進以外基本的に苦手なのでがんばる
  • リバースエンジニアリング

    はじめに 最初に断っておきますが、私はKrackerではありませんし、またリバースエンジニアリングについてさほど詳しいわけでもありません。そんな人が「リバースエンジニアリング」などと銘打って文章を書くこと自体がそもそもおかしいですが、今回は、私がリバースエンジニアリングについていろいろと調べた結果をテキストとしてまとめてみようということでこの文章を書き上げました。よって、この文章は私がここ1ヶ月くらいで学んだ過程を書き綴っています。ただ、まとめたといっても、デバッガの使い方といった初歩の部分から書いているわけではないので、少なくともアセンブリ言語を理解していることが前提となります。また場合によっては、WindowsやDLLの仕組み、そして暗号アルゴリズムに関してもある程度の知識が必要かもしれません。 実験を行った私の環境はWinXP、コンパイラはVC++.NET、デバッガはOllyDbgで

  • LazyなFibonacci - Nobuhisa's diary

    10/11に第4回北海道関数型言語勉強会が開かれました。 ちなみに前日の10/10で21歳になりました!目尻のシワが気になる年頃。 さて、勉強会の終盤。 ずっとSmalltalkをやってきたのにお墓にはHaskellのプログラムを刻むことになったsumimさんが、お墓に刻むプログラムを紹介してくれました。 fib = 1 : 1 : zipWith (+) fib (tail fib) main = print $ take 15 fib -- print (fib !! 3) で4番目の数だけ取れる 会場にいた時何となく分かった気になっていたけど実際分かってなくて(汗)、帰宅後復習して理解しました。(後述) ちなみにzipzipWithを再定義してみると zip' :: [a] -> [b] -> [(a,b)] zip' (x:xs) (y:ys) = (x,y) : zip' xs

    LazyなFibonacci - Nobuhisa's diary
  • 構造体とクラスの使い分け - NyaRuRuが地球にいたころ

    @IT 会議室ネタ.内容は GC 絡み. 構造体とクラスの選択 - @IT Insider.NET 会議室 回答に妙に気になる内容がたくさんあったので少しだけ書いてみます.アカウント無いので. あと,同じサイトで以前こんな記事を書いているので,よろしければどうぞ的な. 連載 .NETWindows Vistaへ広がるDirectXの世界 第6回 .NETアプリを軽快にするためのガベージ・コレクション講座 ひとくちに GC 対策といっても色々あって,たとえば以下の 2 つは別物です. GC の発生頻度そのものを抑えるために, GC ヒープからのアロケーションを避けること GC 発生時の停止時間を短くするために,「生きているオブジェクト」の個数を少なく保つこと ボクシングを減らすのは前者,値型だけで構成された構造体の配列を活用するのは後者に有用です. んで各論. ひろしさんの書き込み (20

    構造体とクラスの使い分け - NyaRuRuが地球にいたころ
  • 「構造体とクラスの選択」(1) Insider.NET - @IT

    IT 会議室 Indexリンク Windows Server Insider Insider.NET System Insider XML & SOA Linux Square Master of IP Network Java Solution Security & Trust Database Expert RFID+IC リッチクライアント & 帳票 Server & Storage Coding Edge @ITクラブ Cafe VB業務アプリケーション開発研究 @IT SpecialPR

  • 1