タグ

programmingとalgorithmに関するkenjiro_nのブックマーク (19)

  • プログラムの可読性を上げるための条件分岐を減らす方法7個 - Qiita

    Help us understand the problem. What is going on with this article?

    プログラムの可読性を上げるための条件分岐を減らす方法7個 - Qiita
  • ループ、再帰、gotoを使わずに1から100までを印字するC++プログラムは書けますか?

    回答 (11件中の1件目) 追記 再帰のルールをよく理解してませんでした。 分かりやすい例として載せておきます。 [code]#include template struct print { print() { std::cout << N << std::endl; } }; template struct Print { Print() { Print(); print(); } }; template<> struct Print<0> { Print() {} ...

    ループ、再帰、gotoを使わずに1から100までを印字するC++プログラムは書けますか?
  • トポロジカルソートと強連結成分分解でWikipediaの特定カテゴリー配下のページをすべて取得する - 終末 A.I.

    Wikipediaの特定カテゴリー配下のページをすべて取得するためには、整理されていないグラフデータ特有のいくつかの問題に向き合う必要があります。 一つは、Category:カツラ科と糸井の大カツラのように、サブカテゴリーにはページへのリンクが含まれているが、カテゴリー体にはページへのリンクが含まれていないケースがあるという問題。 もう一つは、Category:インフォグラム・エンターテインメントームソフトとCategory:アタリのゲームソフトのように、お互いがお互いのサブカテゴリーに含まれてしまっているケースがあるという問題です。 これらの問題は、以下の手順を踏むことで解決できます。 カテゴリーにリンクされているページだけでなく、サブカテゴリー内のリンクを順にたどって含まれるすべてのページを収集する ただし、一度たどったカテゴリーに再度到達した場合、それ以上はそのルートを探索しない

    トポロジカルソートと強連結成分分解でWikipediaの特定カテゴリー配下のページをすべて取得する - 終末 A.I.
  • 「結城浩さんのCodeIQ問題は、なぜ面白いのか?」を7つのポイントで解説!|CodeIQ MAGAZINE

    CodeIQで結城浩さんが出題する問題はいつも大人気!なぜなら結城さんは解答者をどう楽しませるかを考えつくしているから。 今回は結城浩さんご自身に「なぜこんなに面白い問題を作れるのか」そのこだわりを7つのポイントに絞って書いていただきました。 by 馬場美由紀 (CodeIQ中の人) はじめに こんにちは、結城浩です。いつもCodeIQでの出題にご解答いただき、ありがとうございます。 今日は、CodeIQで出題しているときに私が心がけていることをお話しします。 なお、以下でお話しすることはあくまで私が出題する問題に対する心がけです。CodeIQにはたくさんの出題者さんがバリエーション豊かな出題をしています。他の問題に対して批判するという意図はまったくありませんので念のため。 最高の問題 出題するときに心がけていることの第一、それは最高の問題を作ろうということです。 せっかく時間を掛けて問題

    「結城浩さんのCodeIQ問題は、なぜ面白いのか?」を7つのポイントで解説!|CodeIQ MAGAZINE
  • 言語処理のための機械学習入門を読んだ - 射撃しつつ前転 改

    言語処理のための機械学習入門というが出版される、という話はtwitterで知っていたのだが、8月ぐらいに出るのだろうとばかり思っていたら、なんかもう発売されているらしい。Amazonでは早速売り切れていたので、某大学生協の書籍部まで行って購入してきた。おかげで、この週末は280円で過ごすハメになってしまった。 まだざっと眺めただけだが、 ラベルを人手でつけるのに隠れマルコフモデルと言うのは来はちょっとおかしいんだけどNLPの分野だとそう表現する事が多いよ 対数線形モデルと最大エントロピーモデルは同じものだよ 出力変数の間に依存関係がなければCRFではなく対数線形モデルとか最大エントロピーモデルと表現するべきだよ といった、これまでの教科書にはあまり載っていなかったような事が載っているのはとても良いと感じた。こういった情報は、これまではどこかの大学の研究室で学ぶか、もしくはウェブ上の資料

    言語処理のための機械学習入門を読んだ - 射撃しつつ前転 改
  • あなたのスキルで飯は食えるか? 史上最大のコーディングスキル判定

    あなたのスキルで飯はえるか? 史上最大のコーディングスキル判定:makeplex salon(1/2 ページ) この問題ができたから優秀な人材とは限らないけれど、できない人は“ほぼ確実に”優秀ではない――プログラマーの皆さまの実力を計るコーディングスキル判定問題を用意しました。あなたはこの問題が解けるでしょうか? 新年度が始まり、新たに社会人となった読者の方も多いかと思います。あるいは、転職で心機一転がんばろうという読者もおられるでしょう。 あなたがもしプログラマーやSEといった職種であれば、ぜひ面白い仕事を手がけていただきたいと思いますが、そもそも開発分野で当に面白い仕事とは何かを考えたことはありますか? その答えを論ずる前に、少し前に話題となったトピックを取り上げたいと思います。それは、岡嶋大介氏の「人材獲得作戦」についてです。ご存じない方のために少し補足しておくと、岡嶋氏は、株価

    あなたのスキルで飯は食えるか? 史上最大のコーディングスキル判定
    kenjiro_n
    kenjiro_n 2010/04/13
    b:id:entry:20763360にアルファルファモザイクにまとめられたコメントあり。緑一色はなしで大車輪や九連宝塔はありってことでいいのかな?
  • 転送中

    リダイレクトします 以前ここにあったブログは、現在 http://news.pineapple.cc/ にあります。 リダイレクトしますか。

    kenjiro_n
    kenjiro_n 2010/02/04
    id:entry:19080927で紹介されていた「特殊なC言語入門」なるものを連載しているが、デザインが目に優しくないのもある上カテゴリわけがないので読みにくい。/id:entry:25826836に別途転載された。
  • 平面幾何におけるベクトル演算

    ここでは,ACM/ICPC頻出の平面幾何について,基的なベクトル演算を解説します。 最後にライブラリとしてソースコードを載せているので番では印刷して持っておくとよいでしょう。 ベクトルの基礎 デカルト座標系とユークリッド空間 スカラーとベクトル 点とベクトル ベクトルの和と差 ベクトルの利用 complex型の導入 絶対値,2点間の距離,単位ベクトル 法線ベクトル,単位法線ベクトル 内積と外積 内積・外積 2直線の直交判定・平行判定 点が線上にあるかないかの判定 直線と線分 直線と点の距離 線分と点の距離 線分の交差判定 線分の交点計算 直線の交点計算 ソースコード $Id: index.shtml 1825 2007-09-23 00:35:10Z SYSTEM $

  • ステップ9

    kenjiro_n
    kenjiro_n 2009/12/09
    矩形同士の重なり、俗に言う当たり判定についての基礎。
  • 平面幾何におけるベクトル演算 » 直線と線分

    で求まります(ここで |x×y| は実数に対する絶対値, |x| はベクトルに対する絶対値と「絶対値」の意味が異なっている点に注意してください)。 コーディングは以下の通りです*1: // 点a,bを通る直線と点cとの距離 double distance_l_p(P a, P b, P c) { return abs(cross(b-a, c-a)) / abs(b-a); } 線分と点の距離 今度は線分と点の距離を考えてみましょう。 距離としてどのような値が欲しいのか,というのは問題依存なのですが, ここでは一般的な距離の定義に従って,点から「線分のどこか」への最短距離としてみます。 そうすると,線分 ab に垂直な直線で点 a を通る直線と点 b を通る直線に囲まれた領域(下図の左の赤色領域に相当)にある点であれば, 点から直線 ab への垂線が最短距離になります。 また,点 c がこ

    kenjiro_n
    kenjiro_n 2009/12/09
    というほど込み入った算法ではないけれど。
  • 細かすぎて伝わりにくいTopCoderのコーディングスキル向上マジック

    細かすぎて伝わりにくいTopCoderのコーディングスキル向上マジック:最強最速アルゴリズマー養成講座(1/3 ページ) 競技プログラミングはレベルの高い人たちの集まり――そんな考えを持っている初心者の方、TopCoderはあなたのコーディングスキルを爆発的に高める魔法のような場です。今回は、初心者にこそお勧めしたいTopCoderの魅力について考えます。 教育的な観点から見るTopCoder 今回からTopCoderに関する実践的アルゴリズムを解説していく予定でしたが、序盤のうちに触れておきたいことがありましたので、今回の枕は“教育的視点から見るTopCoder”というテーマで少し書こうかと思います。 まず、最初に宣言しておきたいことは、この連載は初心者向きである、ということです。「どう考えても上級者向けだろう」という意見はたくさんの方から寄せられていますが、筆者は、まだプログラミングレ

    細かすぎて伝わりにくいTopCoderのコーディングスキル向上マジック
  • アルゴリズムの紹介

    ここでは、プログラムなどでよく使用されるアルゴリズムについて紹介したいと思います。 元々は、自分の頭の中を整理することを目的にこのコーナーを開設してみたのですが、最近は継続させることを目的に新しいネタを探すようになってきました。まだまだ面白いテーマがいろいろと残っているので、気力の続く限りは更新していきたいと思います。 今までに紹介したテーマに関しても、新しい内容や変更したい箇所などがたくさんあるため、新規テーマと同時進行で修正作業も行なっています。 アルゴリズムのコーナーで紹介してきたサンプル・プログラムをいくつか公開しています。「ライン・ルーチン」「円弧描画」「ペイント・ルーチン」「グラフィック・パターンの処理」「多角形の塗りつぶし」を一つにまとめた GraphicLibrary と、「確率・統計」より「一般化線形モデル」までを一つにまとめた Statistics を現在は用意していま

  • YAPC::Asia 2日目 「はてなブックマークのシステムについて」 - naoyaのはてなダイアリー

    2日目の発表も終えました。資料を公開します。 はてなブックマークのシステムについてView more presentations from Naoya Ito. 今日も少し駆け足気味でした。YACP::Asia 2009、今年も楽しかったです。Hackathon 出ずに京都に戻らなければならなかったのが悔やまれます。 発表の様子 撮影: id:hirose31

    YAPC::Asia 2日目 「はてなブックマークのシステムについて」 - naoyaのはてなダイアリー
  • Yaneu Labs --- コンピュータ将棋プログラムをLISPで書く

    *[hatefu:labs.yaneu.com/20090905/] コンピュータ将棋プログラムをLISPで書く 「コンピュータ将棋プログラムをLISPで書く」と言うとコンピュータ将棋開発関係者にすら完全にネタかと思われているのが実状ではあるが、私はこれを機にその誤解を解いておきたい。 ここでは、私がC#で書いたLISPエンジンのソースを公開し、これが実際にコンピュータ将棋プログラムの開発において非常に有効であることを示す。 * YaneLisp version 1.10 今回の記事はあまりに長文なので最後まで読む前に眠くなる人のために、まず始めに私が実装したLISPのバイナリとソースを配布しておく。ライセンスはNYSLとする。 勢いに任せて実装したので、かなり雑な作りだが、必要ならばC#側で関数を追加するなりすればいいと思う。このLISPの製作に要した時間は丸2日ぐらい。 # YaneL

  • ここギコ!: 位置情報の取得技術まとめ

    Posted by nene2001 at 21:57 / Tag(Edit): locationaware gis mobile / 6 Comments: Post / View / 2 TrackBack / Google Maps gコンテンツワールドのシームレス測位ネタに感化されて、今考え得る位置情報取得技術をまとめてみました。 技術的に考え得る、というだけで、現在利用可能になっているかは考慮していません。 また、いくつかの技術は今回のgコンテンツワールドで初めて知ったと言う程度の、私のアンテナに引っかかった物だけなので、他にもご存知ならばコメントなどで追記ください。 私の知っていることをまとめた、という感じなので、ここをベースに調べる手がかりとしていただければ幸いです。 10/14追記: いろいろググっていると、エントリで書いたようないろんな測位技術を比較

  • エクセルを用いたスプライン補間法による近似曲線

    スプラインはかつて製図で用いられた自在定規を意味しており、補間点を結ぶなめらかな曲線が描けることからこのようによんでいる。 xのいくつかの値に対し、yの値をなんらかの方法(実験、実測、観測、数表等)によってもとめ、これらのデータをもとにして、データの間の任意の点xにおけるyの値を推定する方法を補間法という。 スプライン関数には基スプライン(B-スプライン)、カーディナルスプライン(C-スプライン)、自然スプライン(N-スプライン)などの種類がある。 ここでは、自然スプライン関数による3次の補間法について述べる。自然スプラインは、補間関数のなかで最も滑らかな関数である。 n+1個の補間点(x0y0),,(x1,y1),(x2,y2),・・・・(xn,yn)が与えられたとき、i番目の区間[xi-1,xi]を次の3次式で近似する。 Pi(x) = C1,i + C2,i(x-xi-1)

  • ワードサラダ技術について

    後半部分が重要で、未来の挙動が現在の値だけで決定され、過去の挙動と無関係である ということです。 さて、実例です。たとえば次の文章を考えてみます。 「通信販売大手セシールは9日、生命保険の販売に格参入する方針を明らかにした。」 まず形態素解析するとこんな感じになります。 通信 名詞,サ変接続,*,*,*,*,通信,ツウシン,ツーシン 販売 名詞,サ変接続,*,*,*,*,販売,ハンバイ,ハンバイ 大手 名詞,一般,*,*,*,*,大手,オオテ,オーテ セシール 名詞,固有名詞,組織,*,*,*,セシール,セシール,セシール は 助詞,係助詞,*,*,*,*,は,ハ,ワ 9 名詞,数,*,*,*,*,9,キュウ,キュー 日 名詞,接尾,助数詞,*,*,*,日,ニチ,ニチ 、 記号,読点,*,*,*,*,、,、,、 生命 名詞,一般,*,*,*,*,生命,セイメイ,セイメイ 保険 名詞,一般

  • http://ja.doukaku.org/

  • スペル修正プログラムはどう書くか

    Peter Norvig / 青木靖 訳 先週、2人の友人(ディーンとビル)がそれぞれ別個にGoogleが極めて早く正確にスペル修正できるのには驚くばかりだと私に言った。たとえば speling のような語でGoogleを検索すると、0.1秒くらいで答えが返ってきて、もしかして: spelling じゃないかと言ってくる(YahooMicrosoftのものにも同様の機能がある)。ディーンとビルが高い実績を持ったエンジニアであり数学者であることを思えば、スペル修正のような統計的言語処理についてもっと知っていて良さそうなものなのにと私は驚いた。しかし彼らは知らなかった。よく考えてみれば、 別に彼らが知っているべき理由はないのだった。 間違っていたのは彼らの知識ではなく、私の仮定の方だ。 このことについてちゃんとした説明を書いておけば、彼らばかりでなく多くの人に有益かもしれない。Google

  • 1