タグ

*programmingに関するstolpnikのブックマーク (90)

  • iPhone / iPad アプリケーションの「やっちゃいけない 12 ヶ条」 | スラド アップル

    ストーリー by reo 2010年06月07日 10時30分 論文の「やっちゃいけない 12 ヶ条」も誰か教えて 部門より App Store でアプリケーションが承認されるかはどうかは、当然といえば当然だが Apple の意向次第である。しかし明言されていないルールなどもあり、何が問題となるか不明瞭な部分も存在する。そこでブログ Fatal Exception の著者 Neil McAllister 氏は、確実に承認が下りなかったり、後に App Store から削除されるであろう「やっちゃいけない 12 ヶ条」をまとめたそうだ。その 12 ヶ条とは次の通り (家 /. 記事より) 。 クラッシュや、仕様として記載されている機能が搭載されていないといった低い製品クオリティApple によって既に提供されている機能の模倣 (例: ポッドキャスト)いわゆる「Apple のやり方」に反する

  • http://japan.internet.com/column/developer/20091113/26.html

  • オーダーを極める思考法

    プログラムの実行に掛かる時間を把握しておくのは、プログラミングを行う上で基的な注意点です。今回は、計算量のオーダーについて学びながら、TopCoderのMedium問題を考えてみましょう。 プログラムの実行時間 業務としてプログラミングをされている方には釈迦に説法かもしれませんが、プログラムの実行に掛かる時間を把握しておくのは、プログラミングを行う上で基的な注意点です。そしてこれは、TopCoderなどのコンテストでプログラムを組む際にもよく当てはまります。通常、こうしたことは感覚的に理解している方がほとんどだと思いますが、具体的にどれくらいのループを回すと何秒掛かる、といった基準を持っている人は少ないのではないでしょうか? 非常に基的なことですが、プログラムの実行時間に関して再確認しておきたいと思います。 TopCoderの制限に関して TopCoderでは、実行時間およびメモリ使

    オーダーを極める思考法
  • RGBとXYZの相互変換 - Hello, world! - s21g

    1  def xyz2rgb(x, y, z) 2  r = 3.240479 * x - 1.53715 * y - 0.498535 * z; 3  g = -0.969256 * x + 1.875991 * y + 0.041556 * z; 4  b = 0.055648 * x - 0.204043 * y + 1.057311 * z; 5  [r, g, b] 6  end 7 8  def rgb2xyz(r, g, b) 9  x = 0.412453 * r + 0.35758 * g + 0.180423 * b; 10  y = 0.212671 * r + 0.71516 * g + 0.072169 * b; 11  z = 0.019334 * r + 0.119193 * g + 0.950227 * b; 12  [x, y, z] 13  end

  • 初級C言語Q&A(15)

    初出: C MAGAZINE 1996年8月号 Updated: 1996-09-21 [←1つ前] [→1つ後] [↑質問一覧] [↑記事一覧] [ホームページ] 今回は、よく知られているけどちょっと分かりにくいアルゴリズム、あるいは、 今までの連載で出てきたトリッキーなコードについて、どのような原理で動作す るのかを紹介してみようと思います。ただし、一般論として、凝ったコードより も分かりやすいコードの方が価値がある場合が多いということも頭に入れておい てください。 凝ったアルゴリズム Q 【曜日の求め方】 Comp.lang.c FAQ listを見ると、曜日を求める関数として次のものが紹介され ていた。 dayofweek(y, m, d) /* 0 = Sunday */ int y, m, d; /* 1 <= m <= 12, y > 1752 or so */ { stat

  • 一番右端の立っているビット位置を求める「ものすごい」コード - 当面C#と.NETな記録

    一番右端の立っているビット位置(RightMostBit)を求めるコードで速いのないかなーと探していたら、ものっっっすごいコードに出会ってしまったのでご紹介。2ch のビット演算スレで 32bit 値のコードに出会って衝撃を受けて、その後 64bit 値版のヒントを見つけたのでコードを書いてみました。 この問題は ハッカーのたのしみ―物のプログラマはいかにして問題を解くか (Google book search で原著 Hacker's delight が読めたのでそれで済ませた) で number of trailing zeros (ntz) として紹介されています。bit で考えたときに右側に 0 がいくつあるかを数えるもの。1 だと 0、2 だと 1、0x80 なら 7、12 なら 2 といったぐあい。0 のときに表題どおりの問題として考えるといくつを返すの?ってことになるので、

    一番右端の立っているビット位置を求める「ものすごい」コード - 当面C#と.NETな記録
  • もっと高速に-線分交差判定-

    線分交差判定といっても、すべての与えられた線分に対して、同様な計算を 行って判定していたのでは、無駄が多いように見えます。場合によっては もっと単純な軽い判定で行えるはずです。そこで、 『場合分けによるラフチェック』を もっと簡単に-線分交差判定-のプロシージャ に追加して、次のように変更します。 '構造体 Private Type POINT x As Double y As Double End Type '座標 p1,p2 を結ぶ線分と座標 p3,p4 を結ぶ線分が交差しているかを調べる 'ただし、線分が重なっている場合(3点,4点が一直線上にある)、「交差している」、と判定します。 Private Function intersectionEX(p1 As POINT, p2 As POINT, _ p3 As POINT, p4 As POINT) As Boolean 'x座標

  • 線分交差判定その2 | 空即是色 | null-null.net

    トップページ > 空即是色 > 2006年の記事 > 線分交差判定その2 空即是色 線分交差判定その2 2006年 02月24日 « 線分交差判定空即是色Topキャプチャデバイスの出力画像サイズ » 前回に引き続き、実装。 曲線を適当に線分で分割/近似して交差判定→交点算出している。 線分の交差判定。 (x1,y1)(x2,y2)を結ぶ線分と(x3,y3)(x4,y4)を結ぶ線分の交差を判定する。 inline bool isHitSegments( float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4 ){ if( ( (x1-x2)*(y3-y1)+(y1-y2)*(x1-x3) ) * ( (x1-x2)*(y4-y1)+(y1-y2)*(x1-x4) ) < 0 ){ if( (

  • Voronoi diagram and other graphs (Java) ver 1.2

    プログラム説明 白いフィールド上でクリックすると、そこに点が現れます。 ただし、複数の点を重ねることは出来ません。 幾つか点を描いてから draw ボタンを押すと、図形が描画されます。 描画する図形はメニューの中から選択出来ます。

  • 凸包を求める - jarvisのマーチ - きしだのHatena

    凸包を求めるアルゴリズム、最後にjarvisのマーチという方法をやってみます。 考え方としては、まず最初にy座標が一番小さいものを選んで、その点からの角度が一番小さい点を選んでいきます。 角度は内積で求めます。 このアルゴリズムの場合、凸包上の頂点ごとに点の数の繰り返しを行うので、点の数n、頂点数hとすると、計算量はO(hn)になります。 static List<Point> points = new ArrayList<Point>(); static List<Point> hull; static void createConvexHull(){ //Y座標で並べ替え Collections.sort(points, new Comparator() { public int compare(Object o1, Object o2) { return ((Point)o1).y -

    凸包を求める - jarvisのマーチ - きしだのHatena
  • nicoptere.net - このウェブサイトは販売用です! - nicoptere リソースおよび情報

    This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.

  • indiemaps.com/blog » isolining package for ActionScript 3

    stolpnik
    stolpnik 2009/07/01
    デローニ法
  • サービス終了のお知らせ

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

  • Spaghetti Source - 各種アルゴリズムの C++ による実装

    ACM/ICPC(プログラミングコンテスト)系列の問題を解くことを目標にして,各種アルゴリズムを C++ で実装してみた.極めて意地が悪い類の問題には対応していないし,特定の入力に対して高速に動くということもない.計算量も最良とは限らない. これらを参考にする方への注意とお願い: これらの記述は正確とは限りません.参考文献を参照することを強く推奨します.間違っている場合は是非教えてください. これらのプログラムは間違っているかもしれません.各人で検証することを強く推奨します.バグがあれば是非教えてください. 分類が怪しいので,これはこっちだろう,ということがあればコメントを下さると助かります. 注意! 現在書き換え中 TODO 分類を正しく行う. 全体的に説明と使い方を詳しく. Verify していないものを Verify. ボロノイ図(いつになることやら……) 基 テンプレート グラフ

  • Python CGIプログラミング入門 - Python CGIプログラミング入門

    PythonによるCGIプログラミングの入門のページです。 基的な事柄をわかりやすく説明します。 文字列を表示する 文字(hello world.)を表示します。 現在の日時を表示する 現在の日時を出力します。 環境変数を表示する cgiモジュールを使って環境変数を表示します。 提供された情報を表示する HTMLフォームからCGIプログラムに提供された情報を表示します。 押されたボタンを取得する HTMLフォームの押されたボタンを取得し表示します。 選択されたチェックボックスを取得する HTMLフォームの選択されたチェックボックスを取得し表示します。 選択されたラジオボタンを取得する HTMLフォームの選択されたラジオボタンを取得し表示します。 テキスト入力フィールドに入力された文字を取得する HTMLフォームのテキスト入力フィールドに入力された文字を取得し表示します。 複数行の入力フィ

  • ACM/ICPC国内予選突破の手引き

    ACM/ICPCの2008年度の大会日程が公開されています。 国内予選は2008年7月4日,アジア地区予選会津大会は2008年10月25日~27日でホスト校は会津大学です。 参加登録締め切りは2008年6月20日です。 ここではACM/ICPC(ACM国際大学対抗プログラミングコンテスト: ACM International Collegiate Programming Contest)で 国内予選を突破するために必要な情報を載せています。 ACM/ICPC自体については2006年度の横浜大会のWebサイトなどを読んでください。 結局のところ,ACM/ICPCで良い成績を残すにはひたすら問題を解く練習をするしかありません。 ですが,出題される問題の多くはいくつかのカテゴリ,例えば探索問題やグラフ問題,あるいは幾何問題などに分類することができます。 つまり,「傾向と対策」が存在します。

  • Common Subsequence 解説

    問題名:Common Subsequence (PKU) 出典:Southeastern Europe 2003 難易度:☆☆☆ 問題の種類:DP 解法:LCS (Longest Common Subsequence) 解答ソースコード: 1458-deq.cpp アルゴリズムの概略 DPの四天王(?),LCS (Longest Common Subsequence) そのままの問題です。 アジア地区予選など,通常はこれをひねった問題が出てきます。 LCSとは,二つの値の列(この問題では文字列)が与えられて,最長の共通部分列を見つける問題です。 部分列は連続している必要はありませんが,順序は変更してはいけません。 例えば X = "abcfbc", Y = "abfcab" であればLCSは "abfc" や "abcb" になります。 LCSは一般的に複数ありえますが,この問題ではその長

    Common Subsequence 解説
  • Python入門 ~Pythonのインストール方法やPythonを使ったプログラミングの方法について解説します~ | PythonWeb

    Python は 1991 年にオランダのプログラマー、グイド・ヴァンロッサムによって開発されたプログラミング言語です。シンプルで直感的な文法と可読性の高さから、初心者から上級者まで幅広く利用されています。現在では Web 開発やデータ分析に加え、 AI機械学習などの分野でも活用されています。 Python の最大の特徴は、「書きやすさ」と「読みやすさ」です。コードが直感的でわかりやすく、少ない行数で効率的かつシンプルにプログラムを書くことができます。そのため、プログラミング初心者にとって学習しやすく、経験者にとっても生産性の高い開発を行うことが可能です。また Python には豊富なライブラリやフレームワークが揃っており、初心者でも高度なアプリケーションやシステムを容易に開発できるのが魅力です。 Python は多くの企業や研究機関で採用されており、大手 IT 企業でも活用されていま

    Python入門 ~Pythonのインストール方法やPythonを使ったプログラミングの方法について解説します~ | PythonWeb
  • ガベージコレクションの実装法と評価

    1.はじめに プログラミング言語とはシステム化する対象物を抽象化し、コンピュータで処理可能なコードを記述するために用いる人工言語である。プログラミング言語はコンピュータの機械語と一対一の対応をもったアセンブラから始まり、コンパイラを用いて機械語に翻訳することを前提としたコンパイラ言語、インタプリタと呼ばれるプログラムがソースコードを解釈し実行するスクリプト言語と、記述できる抽象度を高める方向へと進化してきた。 プログラミング言語はその存在理由から、より抽象度の高い記述が行えること、すばやい開発を行える事が求められる。抽象度の高い記述とは、プログラムがどういう処理を行うか(HOW)ではなく何の処理を行うか(WHAT)を記述しやすい構文、機能を持っていることを、すばやい開発とは記述性の高さ、コードの密度の高さ、バグの発生しにくい構文、機能を持っていることをさす。 この抽象度の高い記述、すばやい

  • Google Code Archive - Long-term storage for Google Code Project Hosting.

    Code Archive Skip to content Google About Google Privacy Terms