サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大そうじへの備え
naoyat.hatenablog.jp
というかチートシートを作りました。C++版APIに準拠しています。 URLはこちら:https://www.notion.so/AtCoder-Library-ACL-01a562f6c38e481e88f5a838fd78eb0e www.notion.so
suffix arrayは知ってます。(当然) (知ったきっかけは何だったかな…高林さんのsaryかな) 以前、英辞書検索用のCLIツールを作る時などにも使いました。 でも今までずっと、文字列のポインタを1つずつずらした(文字列の長さ分の)char**配列を用意してqsortでstrcmp的なものを渡すような、愚直な(の)書き方しかしたことがありませんでした。 あまりそれで困るような場面に遭遇したことがなかったということでもありますが、 競プロで使うとなるとそういうわけにはいきません。 制約がとかだともう無理ですよね。 LCP(最長共通プレフィックス)array もそうです。 suffix arrayを作った後に、隣り合う項目同士の最長共通プレフィックスを求めておくやつです。 隣同士の最長共通プレフィックスのリストがあると、あとはRMQとか使えば任意の2つのサフィックスの共通プレフィックス
我が家にKindle Oasis(第9世代)がやってきました。 Amazonさんから黄色復帰祝いが届いた pic.twitter.com/1KDMun8OJc— naoya t (@naoya_t) 2018年6月3日 TopCoder Algoのレーティングが黄色に復帰した後に届いたので黄色復帰祝っぽくなりましたが、ぽちった時点ではそういうイベントが来るのは予期していませんでした。 去年の秋にKindle Paperwhiteを買って以来、Kindle版書籍を積読したり自炊したPDF*1を消化したりに毎日愛用していましたが、もっと画面が広ければ*2自炊本でも実用的に読めるのになーと思っていました。 とはいえKindleのラインナップは最上位機種のKindle Oasis以外全て6インチ。Kindle Oasisの7インチは魅力的ですがお値段はKindle Paperwhiteの2倍以上に
高速ゼータ変換・高速メビウス変換が気になっていたところにタイムリーに先日のARC 100のE問題が来て(ちゃんと解けなかったので)折角なのでこの機会にマスターしようと思い競プロ有識者の皆さんのブログやツイートを漁ってみました。 はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知 高速ゼータ変換 - とどの日記 高速メビウス変換について - lan496の日記 https://pekempey.hatenablog.com/entry/2016/10/30/205852 ビット列による部分集合表現 【ビット演算テクニック Advent Calendar 2016 1日目】 - prime's diary 競技プログラミングにおける畳み込み問題まとめ(FFT,アダマール変換,メビウス変換,ゼータ変換) - はまやんはまやんはまやん 高速ゼータ変換、高速メビウス変
全6部から成るCourseraのRobotics特別講座 Aerial Robotics Computational Motion Planning Mobility Perception Estimation and Learning Capstone の第1講 Aerial Robotics(4週間コース)を受講しました。ドローンに関する講座です。 ドローンは安全性の問題や法整備など課題は多いし実社会での応用はまだまだこれからなのかなと思いますが、物流・農業・建築・災害救助をはじめ様々な分野での活用が期待されています。未来を感じます。 この講座では、クワッドローター(推進に4つの回転翼を用いるドローン)の飛行を制御するのに必要な物理学(力学)が学べます。最終週の課題では、空中の与えられた経由点のリストから飛行コースを計画し、計画した軌道に沿った飛行に必要な推力やモーメントの計算を行うプ
東大松尾研監修のディープラーニングのオンライン講座 DL4US を受講し、無事修了しました。 内容の大部分は書籍やCourseraの講義、普段の業務などで既知のものでしたが、知識を更新しながらコードに落として確認していく作業は有益でした*1。最後の辺り、GANやVAE、深層強化学習の辺りは概念的には知っていましたが実際にコードを書いてみるのは初めてで楽しかったです。最終レポートの提出期限は2回延長されたのですがその締切時刻に間に合わず日が変わってからの投稿になってしまいましたがacceptして頂けました。(ありがとうございます) 応募、オンラインテスト、抽選 12/30の締め切り直前に(割と軽い気持ちで)応募しました。 想定を大幅に上回る?1900人からの応募があったとのことでした。抽選で落ちた皆さんの声をtwitterで大量に目にする中、運良く抽選に通り受講することになりました。 先日募
コロラド大学ボルダー校のTimothy Scherr先生による組み込みシステム向けFPGA設計入門の4週間コースをCourseraで受講しました。 そもそもFPGAに関しては全くの初心者(電子回路とか論理回路については素人とまでは言わないけれど)で、中級者向けのこのコースについていけるのかは未知数でしたが、論理回路に関するなけなしの知識を総動員して最終週までたどり着けました。 Quizは満点が出るまでやり直して、無事100%で修了できました。(1/24) 受講の動機 去年の秋からCourseraの専門講義 deeplearning.ai を受講していて、第5講の開講が延期になって1ヶ月空いたので何か受けようかなと思ったのと、とある社内プロジェクトでFPGAをいじることになったのとで受講を決めました。 概要 実際に手を動かしながら、FPGA開発の基礎を四週間で習得します。 ・プログラマブル・
こないだAtCoderの過去問を解いてて ローカルでは正解が出ているのにサーバ上でREが出まくってはまったのでメモ。 再現できる形で変形&単純化を繰り返した結果がこんな感じ #include <vector> #include <cstdio> std::vector<int> a, b; int f() { a.push_back(-1); b.push_back(-1); return (int)a.size(); } int main() { int first = f(); printf("a[0]=%d, b[0]=%d\n", a[0], b[0]); a[0] = f(); printf("a[0]=%d, b[0]=%d\n", a[0], b[0]); return 0; }・グローバルに vector<int> a, b がある。それぞれの中身は最初は空(だと思う)。
【追記】2/19全講座修了しました! https://www.deeplearning.ai/ Andrew Ng先生のディープラーニング専門講座 deeplearning.ai を受講したメモ。久々のCoursera! Neural Networks and Deep Learning Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization Structuring Machine Learning Projects Convolutional Neural Networks Sequence Models Courseraの中でもこの講義は Specialization という枠組みで、基本有料(月$49.00;講義ビデオを視聴するだけで課題なしCertificateなし
Qiitaにはいくつか記事を書いていますが、はてなでは1年以上ぶりです。 普段はPythonばかり書いています。最近はtheanoが気に入っています。あとclickと。 かよちん生誕祭に開催されたFacebook Hacker CupのR1でなぜか全完できたので、たまには記事を書こうという気になりました。 Round 1 : 1/17 3am JST〜1/18 3am JST(24時間) Facebook Hacker Cup 2016 Round 1 全部で4問 (15,20,25,40)。30点以上獲得すれば通過。 D以外だと2問取らないと30点にならないように出来てる。これはハードかも。 D. Boomerang Tournament (40 points) 夜中に起きたら始まってたので、とりあえず問題を4つとも読んでからお風呂でリラックス。 最後に読んだDを考え始めてて、途中まで実
http://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html より 関数名末尾に l が付いてるのは long、ll なら long long、無印は unsigned int。 他にもいろいろあるけど、コンテストで使うかもしれないやつだけとりあえず。 __builtin_popcount, __builtin_popcountl, __builtin_popcountll 立ってるビット数を数えて返す 0x11 (2進で10001) なら2 0x57 (2進で1010111) なら5 __builtin_parity, __builtin_parityl, __builtin_parityll 立ってるビット数の偶奇を返す。(popcount % 2 に相当) 0x11 (2進で10001) なら0(偶数) 0x57 (2進で1010111)
ふと2-SATの事が気になって、復習がてらPractice RoomでSRM464のDiv1 Medium問題を開いてみた。(ちなみにSRM464には出場している) SAT (充足可能性問題, SATisfiability problem) についてはここの読者の皆さんはご存知とは思います。NP完全問題でおなじみのあれです (x_0 ∨ ¬x_1) ∧ (¬x_0 ∨ ¬x_3) ∧ ... みたいな論理式(乗法標準形)を満たす真偽値 x_0, x_1, ... の組み合わせが存在するか否か。(存在する場合、その組み合わせを知りたかったりする) 上の例ではすべての節が(高々)2変数なので2-SATと呼ばれる。 (2-SATは線形時間で解けるらしい)。 論理和 x ∨ y が論理包含 ¬x⇒y (または ¬y⇒x)に書き換え可能なことを利用して、論理式を有向グラフに変換してみたり 出来上がっ
英辞郎をword2vecに放り込んでみたらちょっと面白かったのでメモを。word2vecについては前回の記事を参照。 使ったのはEIJI-138.TXT(最新より1つ古いバージョンです) EDPさんから1980円ぐらいで買えます。 ■semantically-motivated {形} : 意味論的{いみろん てき}に動機付けられた ■semantically-restricted {形} : 意味的{いみ てき}に制限{せいげん}された ■semantics {名-1} : 意味論{いみろん}、記号論{きごうろん} ■semantics {名-2} : 《コ》〔プログラムの〕動作 ■semantics : 【@】セマンティックス、【分節】se・man・tics ■semantics course : 意味論{いみろん}のコース ■semaphore {名-1} : 手旗信号{てばた しん
ラテン語ネタが続きますが 工藤さんがぐぐたすで紹介してた word2vec が面白そうだったので。 https://code.google.com/p/word2vec/ で少し遊んでみた。いわゆる deep learning で 単語のベクトル表現を学習してくれる。 面白いのは、2つのベクトルの差が、2つの単語の関係をよく近似してくれること。 It was recently shown that the word vectors capture many linguistic regularities, for example vector operations vector('Paris') - vector('France') + vector('Italy') results in a vector that is very close to vector('Rome'), and
折角DSIRNLPに来たので、NLPっぽいことをして遊んでみた話。ネタです。 コードは https://github.com/naoyat/latin にあります。lda_demo.py というやつです。 gensim便利です。PythonからLDAとかLSIとか割と高速にやってくれるトピックモデリングライブラリです。 http://radimrehurek.com/gensim/ ↑チュートリアルが分かりやすくてためになるのでぜひご一読を! from gensim import corpora, models, similarities 元テキスト 初級ラテン語リーディングで読んだラテン語テキストをコーパスにしましょう text = latin.textutil.load_text_from_file('latin.txt') print text Thēseus et Ariadnē.
ふとしたツイートからコードゴルフ大会が勃発 もくし くしも しもく くもし もしく しくも という6行(UTF-8を想定)を出力するCプログラムって最短何バイトまで縮められるだろうか— naoya t (@naoya_t) 2013, 7月 2 元ネタはご存知「少女革命ウテナ」の挿入歌「絶対運命黙示録」の歌詞。 少女革命ウテナDVD-BOX 上巻 (初回限定生産)posted with amazlet at 13.07.04キングレコード (2008-09-26) 売り上げランキング: 26,534 Amazon.co.jpで詳細を見る 少女革命ウテナDVD-BOX 下巻【初回限定生産】posted with amazlet at 13.07.04キングレコード (2009-03-11) 売り上げランキング: 26,400 Amazon.co.jpで詳細を見る @naoya_t CodeI
【次回復々習レーン(2013/7/21開催予定)の発表資料準備】 反復条件付きモード(ICM)での画像復元 左上から順番に走査しながら、反転するとエネルギーを減らせるピクセルを反転 走査前後のエネルギー差分がεを下回ったら(あるいは10回やったら)終了 MacBook Air (1.8 GHz Intel Core i7) でノイズ除去にかかった時間: noise iter sec 5% 5 0.850 10% 6 1.037 15% 6 1.029 20% 8 1.374 25% 10 1.705 30% 8 1.373 320x180の画像をPythonで1秒前後で処理できています。 25%で走査数が多いのは気にしない(ノイズ生成パターンをいくつも作ったら吸収されると思う) オリジナル画像(白黒2値) ノイズ(白黒反転)5% 復元率:99.5781% (文字部分復元率: 97.0245
TCO13MMR3 (6/5〜19) に参戦しました。MM参加は通算6回目。 [6/26更新] 最終順位36位。\TシャツGET☆-(ノ゚Д゚)八(゚Д゚ )ノイエーイ/ http://community.topcoder.com/longcontest/stats/?module=ViewOverview&rd=15683 回想 目標は "LIMITED EDITION 2013 TOPCODER OPEN T-SHIRT"獲得*1 Ratingを黄色にする。(現在青1238) TCO13MMR3は初日から激戦になりそう。wata,ainu7の優勝経験者を筆頭に、tomerun, hirosegolf, venco, jdmetzの他4人の赤が提出。現在1位はR1で5位だったフランス新鋭のeldidou http://t.co/M1fMHEwQ49— 高橋 直大 (@chokudai)
SRM582 Easy(250) "SpaceWarDiv1" 問題意訳 魔法少女(複数)と敵(複数)がいる。 魔法少女は自分と同等以下の敵を倒せるが、1人倒すたびにソウルジェムが濁っていく。 敵は全て倒したいが、ソウルジェムの濁りが特定の少女に集中し魔女化してしまうのを避けるため、戦闘回数を分散したい。 最大限にうまくやったとき、ソウルジェムの濁りはどこまで抑えられるか。 ※雰囲気はそんな感じだけど正確なところは原文でちゃんと読んでください。writerは準急さん(semiexp)です。 入力 {魔法少女の強さ}, {敵の強さ}, {それぞれの強さの敵が何人いるか} 出力 一番多く敵を倒した魔法少女のソウルジェムの濁り 解き方 二分探索でどうよ submitしたWAコード (要ログイン) 二分探索が間違っている事に気づいたのに(あれ、これでも通るんだーとか思っちゃって)再提出せず #in
はい、毎度おなじみのグラフ描きたいだけのエントリですw 今回のお題は「三分探索(ternary search)」。 二分探索(binary search)は割とおなじみかと思うのですが、二分探索が単調増加(減少)関数fについてf(x)=kとなるxを求めるのに対し、三分探索(とか黄金分割探索)は凸関数の極値を求めるのに用います。 詳しくは http://d.hatena.ne.jp/ir5/20090630/1246349028 http://d.hatena.ne.jp/nodchip/20090303/1236058357 辺りを見て頂くとして。 三分探索 探索領域(x0,x3)を三等分するx1,x2を選びます。(x0,x1,x2,x3) で、f(x1)とf(x2)を比べ、f(x)が下に凸な関数なら値が大きい方、上に凸な関数なら値が小さい方の外側(x1ならx0-x1, x2ならx2-x3
TeX & LaTeX Advent Calendar 2012に捧ぐ 最新情報をgithubのwikiにまとめました。→ https://github.com/naoyat/dvi.js/wiki 【注意】jsdvi から dvi.js に改名しました。githubリポジトリやデモのURLがこっそり変更されているのでご注意ください! デモ http://naoyat.github.io/dvi.js/ ※iPhoneのSafariで見る人は http://naoyat.github.io/dvi.js/iphone-safari.html でどうぞ。さもないとブラウザが落ちます。Chromeは http://naoyat.github.io/dvi.js/ で大丈夫でした。 Google Chrome前提。Firefoxだと縦書きができない。Safariは大丈夫っぽい。その他のブラウザは
「ガウス過程」- PRML §6.4 3年前、本レーンでこの辺りを読んだ頃には線形代数力が弱すぎて、というか行列式と式展開から何もイメージがつかめなくて、皆さんの空中戦発表を聞きながら式を書き写してるだけ、みたいな感じだったのを覚えている。あたかも理解できてるような事を喋れていれば「中国語の部屋」的アナロジーが使えるのだけれどそれにも到底及ばないような。 PRML読書会も3周目にもなると、突如PRMLが日本語で書いてあるように読めるようになる瞬間がある(実話)。※1周目、遅くとも2周目でそれが来ていれば復々習レーンは無かった。 とかちょっと前置きをしてみたのだけれど、本質的にこれは「グラフ描きたいだけのエントリ」である。 PRML読んでて一番楽しいのは図表の再現プログラムを書くこと— naoya tさん (@naoya_t) 11月 12, 2012 だから仕方がない。 本題に入ろう。 そ
ぐぐる先生もBINARY HACKS先生も objdump -d -S hogehoge.o で出来るよ、っていうんで brew install binutils でインストールされた gobjdump で試してみたけどCのソースが出てこない ・・・もしかしてLinuxではできるのにMacではできないとか? ・・・というとELFには対応してるけどMach-Oには対応してないとか? で、objdump mach-o でぐぐったらshinh先生の正月の記事ですよ Mach-O バイナリをコード見ながら逆アセンブルする方法が無いってのがずっと困っていました。つまり linux でよくやっている objdump -S みたいなことがやりたかったんですが、 objdump -S は Mach-O に対しては動かないし、 otool -tvV もソースコードは見せてくれないし、っていう。でまぁ一念発起
Instagramのフレンド・タイムライン*1に流れてくる写真の中で、like_countの下1桁が "9" のものがあれば like し、like_countを繰り上げる というよくある定形業務をInstagram APIで自動化してみました。 最近pythonを使うことが多いので python-instagram で行ってみます。 1. Instagram APIのDeveloperサインアップ http://instagram.com/developer/ client_id, client_secretが貰えます。これを使ってaccess_tokenを取得します。 access_tokenの取得方法は http://instagram.com/developer/authentication/ に説明があります。日本語では「5分で使い始めるInstagramAPI」辺りが分かりやす
CourseraのMachine Learningのクラス(Andrew Ng先生; Stanford)が、また今日8/20から開講されます。所要10週間です。 PRML読みの皆さん、何度時間遡行を繰り返してもワルプルムルの夜が倒せない皆さん、機械学習に関心のある皆さんetc. あとcoursera未体験の人も、ぜひ参加してみてください! 講義ビデオは英語です(英語字幕可; スピード調整可)。プログラミング演習の言語はOctaveです。 参加を決めるにあたって参考になるかもしれない記事とか: Coursera始めてみた Coursera受講レポート的なもの シラバス、というか個人的講義消化シート 所定のカリキュラムをこなすと こんな修了証(PDF)がもらえます。(↑今日届きました。これで3枚目) ps. このマスコットキャラクターのTシャツが欲しい、的な書き込みがフォーラムにあったけどその
先日のPRML復々習レーン#4で、発表資料の中の数式をどうしてるかという話題(というかyoukiさんのMS OfficeステマLT)で盛り上がったのですが、html5slides 上で使える良い数式生成ツールないかな、と思ってMathML界隈を調べてたら MathJax というのがありました。 MathJax - Beautiful math in all browsers ちょっと使ってみた感じ → html5slides + MathJax これは良さげなので、次の発表の時にでも使ってみようかと思います。 参考 MathJaxの使い方 (くろきげん) MathJax の導入試験 (後藤さん)
もっとうまい方法があると思うんだけどとりあえず。 Processing.js はてな記法モードで以下のようにそのまま書き込む。 processing.js コード自体はどこか自分のサーバにでも。 canvasは閉じタグを消される*1ので<canvas ... /> コードの行末に // を入れてるのは行末に自動的に挿入される<br>の対策 <script src="http://cloud.github.com/downloads/processing-js/processing-js/processing-1.3.6.min.js"></script><script type="application/processing" data-processing-target="pjs" >// // All Examples Written by Casey Reas and Ben Fry
【注意】MacBook Retinaでやると画面が暗転したまま帰ってこなくなるらしいです。 →マックで画面を回転して表示する方法。ただしMacBookのRetinaでは絶対禁止!!間違って設定した場合の復旧方法も - creativi.tea MacBook Airに外付けモニタを縦置きで繋いで回転表示させたりはするんだけど、 本体の表示も回転できるとは知らなかった。 http://osxdaily.com/2011/03/30/rotate-macbook-display-orientation/ システム環境設定を開く(既に開いてるなら一旦閉じてから) command+optionキーを押しながら「ディスプレイ」を開く 輝度だけでなく「回転」を { 標準, 90°, 180°, 270° } から選べるようになってるので選ぶ (これ出来るようになったのいつからなんだろう・・・) という
(see also:先週のCoursera) 今週からどのビデオを見たか、どの演習をやったか等をGoogle Spreadsheet上でチェックしながら進めています。このシートを見ればまあどの辺りにいるのか分かりますが .@naoya_t さんのずっとやってらっしゃる #coursera の進捗レポートがとても楽しそう。— ラゴンヌさん (@kinaba) 6月 1, 2012 という声もありますし時々の振り返りも重要かと思うので今週のCourseraメモ行ってみます。 参加しているクラス Machine Learning (Andrew Ng, Stanford) - 4/23開講。現在第7週 機械学習システムの設計の指針 闇雲にデータを大量に集めれば良いってものでもない 「そのデータがあれば専門家は自信をもってクラス分類できるのか?」 「大量に訓練データを用意できるか?」 さくっと(汚
次のページ
このページを最初にブックマークしてみませんか?
『naoya_t@hatenablog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く