タグ

programmingに関するhamu-techのブックマーク (11)

  • astah* community - 無償UMLモデリングツール

    2018年9月26日をもちましてastah* communityの提供を終了いたしました。 今後とも、皆様に愛されるastah*をご提供できますよう、より一層の製品の向上に取り組んでまいりますので 引き続きご愛用くださいますようよろしくお願い致します。 2018年9月 astah* チーム

  • Story of Your Life » Blog Archive » 全探索の解き方

    動機 ふと、自分が全探索な問題を解く時にどう解いているかをまとめて見ようと思った。 もちろん自分もまだまだなわけなので、解説というものにはならないし、あくまで自分の考えをまとめただけである。 ちなみに自分が少しでも全探索についてちゃんと理解できたかなと思えたのは、競技プログラミングを始めてからだと思う。 それまでも、もちろんスタック・キュー・再帰なんかを使って、深さ優先探索や幅優先探索を書くことがあったけど、今みたいに書く前にどう書けばいいかを整理できていたわけではなくて、消したり書いたりして長時間考え、いろいろ苦労していた気がする。 基テンプレ 基的に自分の場合、最小手数を求めるであったり、最短経路を求めるようなものでない限り全部を探索する必要があるものは、深さ優先探索で解くことが多い。再帰でかけるので、コード量が少なく感じるからだと思う。 まず自分は何も考えず以下のように書く

  • Coding Memorandum

    今回の自作PCのハマりポイント : オーバークロックがデフォルトでON PC組んだらベンチマークの実行と温度測定はやりたくなること。もちろん、今回もすぐにやりました。 その結果はCPU温度が95℃で全く冷えてない。十数年もののCPUグリスが悪いのかと思い、そこそこに高いナノダイヤモンドグリスを買ってきましたが、温度は変わらず。 色々試しても必ず95℃で、逆に95℃を超えることはない。これは何かあるなと調べたら、下記が見つかりました。 Ryzen 7000の爆熱は簡単に下げられる!CPU設定で温度と電力を最適に調整する方法 ここに書かれているようにマザーボードの設定を確認したら、PBOの項目があって Thermal Limit が3段階(70℃、80℃、90℃)で設定できるようになっていました。ここで温度を設定すれば、その温度までしか上がらないことが確認できました。 標準で95℃まで上がって

    Coding Memorandum
  • std::mapの使い方

    Collada読み込みにおいて、stlのmapを使ったほうがよさそうな場面に出くわしたので、使い方をチェック。キーはstd::stringが手っ取り早そう。要素の挿入・参照方法は、イテレータを使用しないシンプルなものを採用した。 #include <iostream> #include <string> #include <map> using namespace std; int main(int argc, char **argv) { map<string, int> tbl; // 挿入 tbl["hoge"] = 0; tbl["piyo"] = 10; tbl["fuga"] = 20; // 参照 cout << tbl["hoge"] << endl; cout << tbl["piyo"] << endl; cout << tbl["fuga"] << endl; ret

  • プログラミング :: 高速なプログラムを書く為に :: 初めに

    注意 この文章は自分で色々調べながら生半可の理解で書いた物であり、 信用出来ない部分が沢山あります。 何やら、変な宗教を流行らせるなという注意を受けてしまいました → の虫: いまだに変な宗教が流行っている。 (しかし、内部向けに書いた物を、よく見てくれる人がいる物だ。 御免なさい…詳しい人は見ないと思って、調子に乗って、適当な事を偉そうに書いちゃってますが…。) とはいえど、勉強になるのでありがたいです。 何か間違っている事があったら、直接連絡もして頂けると尚嬉しいです。 (或いは、コメント欄とかを用意した方が良いのかなあ。) 後、受けたコメントについて調べたりした内容も載せておく事にします → 初めに (コメントに対し)。 GPGPU について書こうと思ったのですが、それよりも先に、 高速なプログラムを書くに当たって注意するべき一般的な事を述べておいた方が良い様に思ったので、 「高速

  • symfony入門(4):symfonyプログラミング 開発のテクニック(前篇)

    はじめに 連載では、PHP上で動作するアプリケーションフレームワークである、symfonyでアプリケーション開発を行う方法について紹介します。前回までsymfonyによる掲示板アプリケーションの作成を通じて、scaffolding機能をはじめとしたデータベースとの連携や、ページャー機能やカスタムヘルパーの作成、入力値検証の方法、認証関連の機能、アドミンジェネレーターなどについて紹介してきました。今回は前回までで紹介しきれなかった機能を中心に解説していきます。具体的にはビュー断片化、ルーティング、キャッシュコントロールについて触れます。 過去の記事 symfony入門(1):symfonyで始めるPHPフレームワーク symfony入門(2):掲示板アプリケーション作成でsymfonyを理解しよう(前篇) symfony入門(3):掲示板アプリケーション作成でsymfonyを理解しよう(後

    symfony入門(4):symfonyプログラミング 開発のテクニック(前篇)
  • omakeでC++プログラムをコンパイルする覚え書き - tuedaの日記

    omakeがなかなか良さそうなので試しに使ってみながらTIPSを書いていく。 ホームページはここ。 http://omake.metaprl.org/index.html makeの何が悪いか 複数のディレクトリをまたぐプロジェクトで死ねる とにかく使いにくい! コンパイラに渡しているオプションが不明瞭 当に-DOPTIMZE=SIMDでコンパイルしたか!? 依存関係の解析がアホ そのままだとヘッダーの修正を検出してくれない。いきおい念のためmake clean連発 omakeの何が良いか? どこからでもomakeできる OMakerootのあるディレクトリの下なら、どこからでもomakeできる 依存関係の解析が強力 何もしなくてもヘッダーファイルの修正を検出する インクリメンタルなコンパイル デーモンモードというのがあって常駐しつつファイルの変更を検出して自動でコンパイルが走る。これは

  • 2012-06-09

    C#, C++, Objective-Cのラムダ(匿名関数)の基的な使い方の覚え書きと、JavaSE7時点のラムダ相当のイディオムについての雑記。 (※ プログラムの作用に主眼を置いて、単純に、Lambda ≒ Closure ≒ Block ≒ 匿名関数 という認識で書いてます。) C#4.0のラムダの使い方 C#には、C#1.0のもとより関数ポインタ的なdelegateという言語的な仕組みがあって、 それに乗っかる形でC#4.0よりラムダがサポートされた。 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ClosureCs { class Program { static void Main(string[] args) { // C#4.0

    2012-06-09
  • OMake つかったらC言語でプログラム書く手間がバカみたいに減った - 日記を書く[・ _ゝ・]はやみずさん

    OMakeすごい。OMakeはマジですごい。 OMakeはGNU makeの代替品みたいなものなんだけど、正直なところこのツールの強力さはGNU makeと比べると失礼なくらいすごい。これのおかげで、「コード修正→ビルド→デバッグ→コード修正→・・・」のループの、ビルドにあたる作業がほぼ消え去った。 ファイルの依存関係の解析がとにかくすごい。よくあるユースケースなんかの場合、最小限の手間でほぼ完璧に依存関係を網羅して、よしなにビルドしてくれる。 とりあえず、はやみずが実際に使ってみたケースを例にとってそのすごさの一端を紹介しようと思う。 case study 論より証拠ということで、自分が OMake を試しにつかってみたケースを紹介する。C言語でスタティックライブラリを作っていて、それに加えて簡単なテストプログラムを書いている。 /include/ 以下にヘッダファイルが全部ある /sr

    OMake つかったらC言語でプログラム書く手間がバカみたいに減った - 日記を書く[・ _ゝ・]はやみずさん
  • gdb の使い方・デバッグ方法まとめ

    たとえば、変数 var の値を2進数で表示したい場合は、次のように指定します。 (gdb) p/t var 一覧表示 whatis 変数の型を調べる。 info b 今設定しているブレークポイントの一覧を表示 セグメントフォルトをした後に利用すれば、どの関数で発生したか確認できます。 info stack 関数の呼び出しスタックの一覧を表示 info Thread 存在しているスレッドの一覧を表示 異なるアドレスにおける処理継続 以下のコマンドを使用することで、ユーザが選択したアドレスにおいて実行を継続させることができます jump linespec linespecで指定される行において、実行を再開 jump *address addressで指定されるアドレスにある命令から、実行を再開 アドレスが分かっている場合のメモリリーク出力 xはhexの意味です。 (gdb) p (char*)

    gdb の使い方・デバッグ方法まとめ
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • 1