タグ

algorithmとprogrammingに関するlepton9のブックマーク (242)

  • 婚姻成立数のシミュレーション - juunnnnnnnn's blog

    下記のツイートが面白かったので、記載の条件から、 男女ペアあたりの結婚が成立する確率を求めようとしました。 各10人の男女にそれぞれ1~10の年収があり、恋愛は男の告白から始まると仮定、競争力の高い男10から1に向かって順におっぱいの大きさ(ランダム)で告白、男の年収>女の年収となった場合に婚姻が成立して婚活から離脱していくとした場合の婚姻成立数の期待値 #とは— 三河のあんちゃん (@aaannchang) 2015, 4月 1 しかし、、、 なかなかむずい。。。 私の数学力では 「結婚した場合、女性が婚活から離脱し、次の男性の選択肢から無くなる」場合を 一般化できませんでした。 なので、ひたすらシミュレーションして、答えっぽい値を求めるアプローチに切り替え。 10,000回、上記婚活をシミュレーションして、平均何組 結婚できるのか求めました。 ※シミュレーターのソースコードは最下部 そ

    婚姻成立数のシミュレーション - juunnnnnnnn's blog
  • 「プログラマーは将棋ソフトの思考を把握していない」 真鍋大度と山本一成がアップルストア銀座で語る - はてなニュース

    将棋連盟が主催するトークイベント「トッププログラマーが語る人工知能:真鍋大度 & 山一成」が、4月2日(木)に東京のアップルストア銀座で開催されました。アートと将棋それぞれの分野で活躍している2人のプログラマーが、人間と人工知能の未来について語りました。司会は、ニコニコ生放送の将棋番組などでおなじみのプロ棋士、遠山雄亮五段。この記事では、1時間のイベントの様子をレポートします。 ▽ 4/2(木)アップルストア銀座でトークイベント開催!|イベント|日将棋連盟 ▽ http://www.shogi.or.jp/topics/event/2015/04/post_1194.html 「最強の将棋ソフト」開発者の素顔 イベントは、真鍋大度さんと山一成さんの紹介から始まりました。真鍋大度さんは、1976年生まれのアーティスト・プログラマーです。サカナクションの楽曲からリスナーの好みを学習し

    「プログラマーは将棋ソフトの思考を把握していない」 真鍋大度と山本一成がアップルストア銀座で語る - はてなニュース
  • 正規表現技術入門 | 技術評論社

    目次 書について 執筆担当一覧 各言語の公式ドキュメント,および正規表現の対応状況一覧表 第1章 [入門]正規表現 --メタ文字,構文,エンジン 1.1 正規表現の基 正規表現とは何か パターンとマッチ 書き方はいろいろ 基的な正規表現のメタ文字と構文 正規表現エンジン 1.2 文字列と文字列処理 Column 「正規」とは? コンピュータと文字列 文字列は扱いやすい プログラミングで プログラムの実行で 設定ファイルの書き換えで ログの検索や整形で Twitterで 1.3 正規表現の基三演算 --連接,選択,繰り返し 3つの基演算とは? パターンの連接 パターンの選択 連接と選択の組み合わせ パターンの繰り返し Column 「任意の〜」 長さに制限のないパターン Column きちんとした文法の定義 --BNF 基三演算の組み合わせ 基三演算を1種類しか使えない場合 基

    正規表現技術入門 | 技術評論社
  • コンピュータシステムの理論と実装

    TOPICS 発行年月日 2015年03月 PRINT LENGTH 416 ISBN 978-4-87311-712-6 原書 The Elements of Computing Systems FORMAT コンピュータを理解するための最善の方法はゼロからコンピュータを作ることです。コンピュータの構成要素は、ハードウェア、ソフトウェア、コンパイラ、OSに大別できます。書では、これらコンピュータの構成要素をひとつずつ組み立てます。具体的には、NANDという電子素子からスタートし、論理ゲート、加算器、CPUを設計します。そして、オペレーティングシステム、コンパイラ、バーチャルマシンなどを実装しコンピュータを完成させて、最後にその上でアプリケーション(テトリスなど)を動作させます。実行環境はJavaMacWindowsLinuxで動作)。 ● 書のサポートサイト ● 書で使用する

    コンピュータシステムの理論と実装
  • 機械学習アルゴリズムまとめ | 株式会社フルスピード - Growth Seed

    みなさんこんにちは。アナリストの荒木です。近い将来さまざまな仕事がロボットに置き換わっていくと多くの人が予想しており、そのコアテクノロジーの一つが機械学習です。GoogleがDeepMindを買収したことで機械学習という言葉も身近になりつつありますが、すでにamazonレコメンドや画像認識などで活躍しています。 そこで今回は、ウェブ担当者が「機械学習ってどんなことをやっているのだろう?」という場合に勉強できるスライドをまとめました。 ↓【無料DL】「SEO内部対策チェックシート」を無料ダウンロードする 機械学習によるデータ分析まわりのお話機械学習でどんなことをしているのかをまとめたスライドです。データのこと・機械学習のこと・評価のこと・分析のことの4部構成で、データマイニングの一連の流れを学ぶことができます。 Deep LearningGoogle認識例で有名になった手法を紹介したスラ

    機械学習アルゴリズムまとめ | 株式会社フルスピード - Growth Seed
  • ご注文はDeep Learningですか? - kivantium活動日記

    先日Deep Learningでラブライブ!キャラを識別するという記事が話題になっていました。この記事で紹介されている SIG2D 2014を知り合いから貸してもらったので参考にしながら、ご注文は機械学習ですか?のDeep Learning版を作ってみました。 Caffeなど必要なソフトのインストール Ubuntu 14.04の場合は過去記事を参照してください。これ以外にもpython-opencvなどを使いますが、依存関係の全ては把握できていないのでエラーが出たら適宜インストールしてください。 データの準備 Deep Learningでは大量の学習データが必要になると言われているので、まずは大量のデータを用意します。参考記事では6000枚のラブライブ画像を使ったということなので対抗して12000枚以上のごちうさ画像を用意したいと思います。それだけのデータを手動で分類するとそれだけで時間が

    ご注文はDeep Learningですか? - kivantium活動日記
  • パーリンノイズを理解する | POSTD

    この記事の目的はKen Perlinの改良パーリンノイズを分かりやすく分析し、お伝えすることです。記事内のコードはC#で書かれており、自由にご利用いただけます。最終形のみを見たい方は、こちらから最終的なソースをご確認ください。 パーリンノイズは手続き的なコンテンツ生成によく使われる、非常に強力なアルゴリズムです。ゲームや、映画などの視覚媒体に特に有用です。パーリンノイズの開発者であるKen Perlinは、この最初の実装でアカデミー賞を受賞しました。彼が2002年に発表した改良パーリンノイズについて、私はこの記事で掘り下げていきます。パーリンノイズは、ゲーム開発においては、波形の類や、起伏のある素材、テクスチャなどに有用です。例えば手続き型の地形(Minecraftのような地形はパーリンノイズで生成できます)、炎のエフェクト、水、雲などにも使えます。これらのエフェクトのほとんどが2次元、3

    パーリンノイズを理解する | POSTD
  • データ構造と メソッドのネーミング - codic ブログ

    データ構造など技術的な背景をちゃんと知っていれば、データ操作に関する正しい英語を使えるねーて話です。用語のイメージもつかめるようにしていますので、shift / unshift とかイメージできない方もどうぞ。 1. push / pop = スタック push pop は、スタックの用語で、それぞれ pop はスタックから取り出す、push は挿入する事を意味します。JavaScriptRuby の Array には、スタックとしてのコンセプトもあるので、push / popという用語が使われます。 対して、Javaの ArrayList (インターフェースは Collection) は、単なる集合を表すインターフェースなので、抽象化のために add / remove というネーミングが使われます。そういえば、Javaには、Stackというクラスも別途用意されていますね。Stack

    データ構造と メソッドのネーミング - codic ブログ
  • 竹内関数が音楽的に聴こえる理由について考えてみた - aike’s blog

    前回のエントリーが予想以上に反響が大きくてびっくりしています。 プログラミング言語好きの僕にとってはヒーローみたいなすごいプログラマーたちにツイートしてもらってびびっていたところ、今日になって竹内先生ご人からのコメントをいただいてしまって気で腰抜かしそうになりました。せっかくなので自分なりに竹内関数が音楽的に聴こえる理由についての考えを書いてみます。 ■ちょっとした工夫 最初に少し種明かしをすると、より音楽的になるように以下のような工夫をしています。 ・ダイアトニックスケール(白鍵)だけを使用し調性の外れた音が出ないようにした ・最小値(-1)をレにわりあてることで少し寂しげなドリアンスケールにした (とはいえ-1の出現頻度が低いのでミからはじまるフリジアンスケール的かも) ・オートアルペジオ、テンポ、音色の設定でミニマルミュージック風にした 上記のことをおこなうと、ただの乱数でもわり

    竹内関数が音楽的に聴こえる理由について考えてみた - aike’s blog
  • ドワンゴのプログラミングコンテストをクリアできなかったお話

    dwangoプログラミングコンテスト2016 ドワンゴが主催するプログラミングコンテストの予選が、24日に行われたそうだ。筆者はクリアできなかったが、簡単なものだけ解説する。格的な解説が読みたい人は、わざわざこの記事を読まずとも、以下で解説されているようだ。 「dwangoプログラミングコンテスト」予選問題解説 // Speaker Deck A: プレミアム会員 - dwangoプログラミングコンテスト | AtCoder ニコニコ動画には、プレミアム会員という制度があります。このプレミアム会員制度には月額一定の額を支払うことで加入できます。 ニワンゴくんは、この n ヶ月間連続してプレミアム会員です。 また、x ヶ月前に月の一定支払い額が 525 円から 540 円に変わったことを知っています。 つまり、この n ヶ月のうち最近の x ヶ月間は月額 540 円支払っていて、それ以外の

  • 【累積和、しゃくとり法】初級者でも解るアルゴリズム図解 -

    2014年12月3日より2015年1月7日まで開催した、paizaオンラインハッカソンVol.4Lite「エンジニアでも恋したい」は、トータルで3問有りましたが全て解けましたでしょうか? 各問題の成否によりストーリーが変わるのであえて間違えて解いた方もいらっしゃると思いますがw (プレゼント対象期間は終了しましたが、問題チャレンジは可能なので、未チャレンジの方は是非チャレンジください!) 問題1、問題2は解説するほどのむずかしさでもないので省きますが、問題3は多少工夫が必要なので、問題3について今回もPOH恒例の「図解解説」をしてみたいと思います。既に解けた方もそうでない方も、今回の解説を読んで、それぞれの方法すべてを実装してみると勉強になると思いますので、是非試してみてください。 ■どのような高速化ステップがあるのか? 今回の問題ですが、解法の大きなパターンとしては、1.全てのパターンを

    【累積和、しゃくとり法】初級者でも解るアルゴリズム図解 -
  • GitHub - prakhar1989/awesome-courses: :books: List of awesome university courses for learning Computer Science!

    CS 61C Great Ideas in Computer Architecture (Machine Structures) UC Berkeley The subjects covered in this course include: C and assembly language programming, translation of high-level programs into machine language, computer organization, caches, performance measurement, parallelism, CPU design, warehouse-scale computing, and related topics. Lecture Videos Lecture Notes Resources Old Exams CS 107

    GitHub - prakhar1989/awesome-courses: :books: List of awesome university courses for learning Computer Science!
  • 1/30 発売!「プログラミングコンテスト攻略のためのアルゴリズムとデータ構造」 - iwiwiの日記

    書籍「プログラミングコンテスト攻略のためのアルゴリズムとデータ構造」が近日中に発売される予定です.会津大の渡部先生が著者で,Short Coding の Ozy さんと私が協力としての参加です.どうかよろしくお願いします. プログラミングコンテスト攻略のためのアルゴリズムとデータ構造 作者: 渡部有隆,Ozy(協力),秋葉拓哉(協力)出版社/メーカー: マイナビ発売日: 2015/01/30メディア: 単行(ソフトカバー)この商品を含むブログ (4件) を見る 書はアルゴリズムとデータ構造の入門書です.整列,探索,木構造などをはじめとする基礎的なアルゴリズムとデータ構造を初学者向けに説明します.前提とするのは基礎的なプログラミング能力のみです.コード例では C++ を用いています. これだけだと,よくあるのように思われるかもしれません.しかし,書は非常にユニークな特徴として,オン

    1/30 発売!「プログラミングコンテスト攻略のためのアルゴリズムとデータ構造」 - iwiwiの日記
  • 機械学習はじめの一歩に役立つ記事のまとめ - その後のその後

    機械学習」というワードになんとなく惹かれつつも、具体的にやりたいことがあるわけでもないので、手を動かすことなくただひたすら「いつかやる」ために解説記事やチュートリアル記事を集める日々を過ごしていたのですが、このままじゃイカン!と Machine Learning Advent Calendar 2014 - Qiita に参加登録してみました。 が、やはり何もしないまま当日を迎えてしまったので、お茶濁しではありますが、せめて「機械学習ってどんな手法やライブラリがあって、どんな応用先があるのか?」というあたりをざっくり把握して最初に何をやるのか方向付けをするためにも、たまりにたまった機械学習系の記事をいったん整理してみようと思います。 機械学習の概要 特定のライブラリや手法の話ではなく、機械学習全般に関する解説。 機械学習チュートリアル@Jubatus Casual Talks 機械学習

    機械学習はじめの一歩に役立つ記事のまとめ - その後のその後
  • 機械学習をこれから始める人に押さえておいてほしいこと - Qiita

    いしたーです。アルバイトで機械学習やってます。こんにちは。 とある勉強会に出席したときに、「機械学習をやりたいけどわからないことが多い」という意見を聞いたので、いくつかアドバイスを載せておきます。 ##読む前の注意 研究についてのアドバイスは書いていません。趣味機械学習をやろうと思っている方が対象です。 この記事は他の方の意見をまとめたものではありません。私個人の経験に基づいて書いたものです。よって、この記事の内容はほとんど「私の意見」です。 以上2つの注意点を踏まえた上でお読みください。 ##「機械学習で何をしたいのか」を決めてほしい 機械学習を学ぶ前に、機械学習を使って何をしたいのかを決めてください。 機械学習は数式がたくさん登場したり、難しい概念を理解しなければならなかったりすることがあります。 やりたいことを決めてから学ぶと、今自分はある目的を達成するために学んでいるんだと思うこ

    機械学習をこれから始める人に押さえておいてほしいこと - Qiita
  • シューティングゲームの背景の星表示の話

    じぇみに @jeminilog 昨夜ガンヘッドの話が出たので、前に「そのうちもっとオリジナルに近い人が何か言うだろう」と放置してたネタをば。 2014-11-19 12:33:02 じぇみに @jeminilog ガンヘッド、というより先攻例としてスターソルジャーは、背景に星が流れてるでしょ。限られたリソース内で結構大変な事してるなあと思ってたけど、実はそれをうまく折り合わせる手法があったりする。 2014-11-19 12:33:09

    シューティングゲームの背景の星表示の話
  • プログラミングコンテストで、C++を使って全ての問題を解くのに必要なアルゴリズムは何ですか? | POSTD

    これが私の提案するリストです。必要とされるアルゴリズムや概念のほとんどが挙げられています。いくつかの要素はアルゴリズムではなかったり(フェイクや状態、関心事など)、重複していたりもします。 最後に1つ、アドバイスを。 知識を蓄える前に、まずは思考能力を鍛えることを重要視しましょう。これはコンテストのみならず、あなた自身の将来にも役立ちます。思考能力を鍛えるには、アルゴリズムではなく純粋な思考を必要とする、アドホックを使いこなせるようになりましょう。 topcoderのDiv2とCodeforcesのDiv2の2つに集中することも効果的だと思います。どちらも、低いレベルから問題に取り組んでいきましょう。例えば、Div2-250をマスターしてからDiv2-500に取り組む、などです。

    プログラミングコンテストで、C++を使って全ての問題を解くのに必要なアルゴリズムは何ですか? | POSTD
  • ご注文は機械学習ですか? - kivantium活動日記

    先日書いたOpenCVでアニメ顔検出をやってみた - kivantium活動日記の続編です。アニメ顔を検出するところまではうまくいったので、今度はキャラの分類をやってみようと思います。環境はUbuntu 14.10です。 ひと目で、尋常でない検出器だと見抜いたよ まずは分類に使う学習用データを用意します。投稿から半年以上経つのにまだランキング上位に残っている驚異の動画ご注文はうさぎですか? 第1羽「ひと目で、尋常でないもふもふだと見抜いたよ」 アニメ/動画 - ニコニコ動画を使います。 動画のダウンロード Ubuntuならaptで入れられるnicovideo-dlというツールを使います。 sudo apt-get install nicovideo-dl nicovideo-dl www.nicovideo.jp/watch/1397552685その後avidemuxでOP部分だけの動画を

    ご注文は機械学習ですか? - kivantium活動日記
  • 自然言語処理に新風を巻き起こしたWord2Vecとは何か - 日経BigData

    言語データの分析と応用のために自然言語処理と呼ばれる分野で長年研究が行われて来た。同分野が昨年から大きく沸き立っている。米グーグルの研究者であるトマス・ミコロフ氏らが提案した手法「Word2Vec」が、いくつかの問題について従来のアルゴリズムよりも飛躍的な精度向上を可能にしたのだ。 この手法によって得られるベクトル空間には、今まで定量的に捉えることの難しかった言葉の「意味」を極めて直接的に表現しているかのような性質が認められている。今年9月、当社がスポンサー参加した自然言語処理系の研究発表会「NLP若手の会 第9回シンポジウム」でも、多くの研究がWord2Vecに関連したテーマについて取り上げていた。今後、意味解析、文書分類、機械翻訳など様々な分野でWord2Vecの応用が期待されている。 「意味ベクトル」の驚異的な性質 Word2Vecは、その名前の表す通り、単語をベクトル化して表現する

    自然言語処理に新風を巻き起こしたWord2Vecとは何か - 日経BigData
  • 視覚化による5つのガベージコレクションアルゴリズム入門 | POSTD

    ほとんどの開発者は、自動のガベージコレクション(GC)を当たり前のように使っています。これは、私たちの仕事を容易にするために言語ランタイムが提供する素晴らしい機能の1つです。 しかし、最新のガベージコレクタの中をのぞいてみれば、実際の仕組みは非常に理解しづらいことが分かります。実装の詳細が無数にあるため、それが何をしようとしているのか、また、それがとんでもなく間違った事態を引き起こしかねないことについて十分理解していない限り、すっかり混乱してしまうでしょう。 そこで、5種類のガベージコレクションアルゴリズムを持つおもちゃを作ってみました。小さいアニメーションはランタイムの動作から作成しました。もっと大きいアニメーションとそれを作成するコードは github.com/kenfox/gc-viz で見ることができます。単純なアニメーションによってこうした重要なアルゴリズムを明らかにできることは

    視覚化による5つのガベージコレクションアルゴリズム入門 | POSTD