タグ

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

  • 関連タグはありません

タグの絞り込みを解除

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

  • 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
    重みづけに合わせ乱数を発生させる関数。ああ、こういうやり方があったのねと思った。足すんじゃなくて引くと。
  • 1