タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

programmingとphpとtipsに関するteddy-gのブックマーク (7)

  • switch文を使ってはいけない

    昔Qiitaで書いた内容なんですが、PHPswitch文は悪名高い「==」演算子で比較を行います。 <?php switch (true) { case 0: echo '数字の0'; break; case '0': echo '文字列の0'; break; case '0.0': echo '文字列の0.0'; break; case true: echo '真偽値のtrue'; break; } このコードは「文字列の0.0」を出力します。大変分かりにくいですね。 この点はif ... elseif ...を使えば解決するんですが、switchで書きたくなるようなコードをelseifにするとおそらく読みにくくなるでしょう。 ではどうするか。 正解はオブジェクトのポリモーフィズム(多態性)機能を使うことです。 といっても、多態性で調べて出てくる記事とか書籍に関しては抽象的な説明が多い

    switch文を使ってはいけない
    teddy-g
    teddy-g 2014/08/19
    記事中リンクされてるTECHSTOREの記事は分かりやすいんだが、何かこの記事の実装は腑に落ちない。OOPなのに美しくないからかな?まあ、switch文の評価が==で行われるってことだけ覚えとこう
  • みすとるてぃん: [PHP] 重み付きランダム数の作り方

    2012年7月20日金曜日 [PHP] 重み付きランダム数の作り方 最近PHPにはまっています、みすとです。 前回の記事では、出現率に偏りのあるランダム数の生成の仕方について書きました。 でも、あくまで偏りを持たせているだけで、出現確率を任意に操作できるわけではありません。 そこで今回は、自分で確率を設定できる、重み付きランダム数の生成をやってみたいと思います。 前回同様に、2種類の紹介となります。 今回は、アルゴリズム部分だけの抜き出しはしていませんので、コードから判断してください。 シンプルな重み付きランダム数 まずはシンプルに、頭から数えていく方法です。アイテム数が100個程度なら、これでもぜんぜん問題ないかと思います。 <html> <head><title>PHP TEST</title></head> <body> <?php function weighted_rand

    teddy-g
    teddy-g 2014/07/09
    なるほど、二分探索木で高速化すると。
  • 重み付きのランダム抽選関数を作る(PHP)

    新生FF14のチョコボ(バディー)は、何も設定しなければフリースタイルで戦うって知ってましたか?頑張ってバディーのディフェンススキルを上げているのに、どうもチョコボの戦い方がディフェンサーぽくないな〜。おいっチョコボ!ちゃんと仕事しろよ!!っと思っていたら、メニューのバディー画面でフリースタイルのアイコンに小さいチェックマークがあるではないですか!?ディフェンススタイルにチェックするようにしたら、ちゃんと仕事するようになりました♪ …ごめんよチョコボ、筆者が無知なだけでした。 重み付きの抽選ロジックは既に色々なところで紹介されていますが、ちょっと必要になったので作ってみました。配列要素の値に重み(確率)となる整数値を入れて渡すと抽選された要素のキーを返します。サンプルでは、hash配列を渡していますが、array配列でも同様に要素のキーを返します。 /* * 配列から1つの要素キーを抽選す

    teddy-g
    teddy-g 2014/07/09
    重みづけに合わせ乱数を発生させる関数。ああ、こういうやり方があったのねと思った。足すんじゃなくて引くと。
  • Page2

    LinkTree - HOME http://sadako.nobody.jp/ http://monodebank.nobody.jp/ http://okichi.xxxxxxxx.jp/ http://utaneko.gozaru.jp/ http://urananaon.atukan.com/ LinkTree -

    teddy-g
    teddy-g 2009/04/27
    レン鯖だからMeCab使えない
  • crawler.jp - au携帯GPSで位置情報を連続取得する(W41CA)

    位置情報を連続取得するスクリプトは、こちらのサイトを参考にして作っています。 http://tdiary.ishinao.net/20050603.html#p02 参考というか、そのまんま。。。 原理はこんな感じです。スクリプトを実行すると、<wml:timer~>で指定した時間何もせずに待ちます。待ち時間が切れると位置情報をauに問い合わせます。すると、緯度・経度がGETで取れます。それをそのままMySQLにinsertします。そのあとに、同じスクリプトがリロードされるので、また<wml:timer~>で指定した時間が経過後に・・・という感じで連続して位置情報が取れます。 以前、W32SAを借りて実験したときにはこの方法で動いていました。しかし、先日購入したW41CAでは、<wml:timer~>で指定する待ち時間が短い場合、スクリプトのリロード後、なぜか位置情報の問い合わせをノー

    teddy-g
    teddy-g 2009/04/27
    うまく連続取得できないとき
  • 携帯電話と位置情報 : 現在地の測位 (2)

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、広告部ながやです。 前回の記事では仕様面を記述しましたので、 今回は実際のコードを公開してみようと思います。 例をシンプルにするために、基地局の緯度/経度取得のみ対応とします。 GPS(衛星利用測位システム)機能搭載端末やWILLCOM端末は実装から省きますが、少しの拡張で対応できると思います。 端末をお持ちの人はぜひ挑戦してみてください。 サンプルコード index.php ※1,※2,※3,※4,※5 <?php function array_val(&$data, $key, $default = null) { if (!is_array($data)) { return $default; } return

    携帯電話と位置情報 : 現在地の測位 (2)
    teddy-g
    teddy-g 2009/04/23
    iエリアの中心点を実装しようとしたが考えただけで疲弊してやめたのを思い出した
  • GMO MEDIA|FOR YOUR SMILE, WITH INTERNET

    AI時代を背景に「深く考える趣味」「リアルな感動体験」への関心が上昇 4月3日「趣味の日」に合わせ、...

    GMO MEDIA|FOR YOUR SMILE, WITH INTERNET
    teddy-g
    teddy-g 2009/04/20
    EUC-JPでコケまくってたから助かった
  • 1