平方数とは、ある整数の平方(=二乗)であるような整数のことを言います。つまり、0,1,4,9,16,...が平方数ということになります。 ところで、与えられた整数が平方数かどうかを判定するにはどうすれば良いでしょうか。与えられた整数の平方根の小数点以下を切り捨て、それを二乗して元の数になるかどうか、というのがすぐ思いつく実装です。 <?php function is_square($n) { $sqrt = floor(sqrt($n)); return ($sqrt*$sqrt == $n); } しかし、平方根の計算は比較的重い処理です。もっと高速化する方法は無いのでしょうか。 多倍長整数演算ライブラリGNU MPには平方数かどうかを判定するmpz_perfect_square_p関数が存在します(PHPでもgmp_perfect_square関数として利用できます)。本稿ではこの実装
PDCA PDCA とみんな言いますが、僕はこれずっと何かおかしいと思っているのです。 ウィキペディアによれば PDCA とは、 Plan(計画):従来の実績や将来の予測などをもとにして業務計画を作成するDo(実施・実行):計画に沿って業務を行うCheck(点検・評価):業務の実施が計画に沿っているかどうかを確認するAct(処置・改善):実施が計画に沿っていない部分を調べて処置をするであって、これをサイクリックに繰り返すとのこと。 これの何がおかしいと感じるかというと、最後の Act のところです。 まず計画を立てて、それを実行してみて、その結果を評価する。ここまではいい。 けれど、その次に評価の結果を見て改善処置をする Act というフェーズが、他の Plan Do Check と並列になっているのはおかしい。 もしこれがサイクルではなくて、ウォーターフォールとしてはじまりと終わりがはっ
例年のことですが、ゴールデンウィークは大型の研究予算の申請書を書く時期なので、今後どのように研究を進めるべきか、考えています。 非常に悩ましいのは、ITやエレクトロニクスでは日本企業が傾いてきて、将来の研究開発に力を入れる余裕がなくなってきていること。 ITのような応用分野の国プロのファンディングは、大学が基礎研究をやるだけではダメで、必ず出口企業(開発した技術を製品化する企業)の参画が求められます。 最大の悩みは、最近は企業の方が付いてこれなくなっている。 その一方、グーグルやアップルに代表されるような海外企業は非常に元気が良く、日本の大学の研究にも注目し始めています。 象徴的な例が、東大発のロボットベンチャー、シャフトが日本企業からは資金を得られず、グーグルに買収された件。 現在の日本、海外の企業を取り巻く状況を昨日ブログ「日本が負けつつあるのはロボットだけではない。競争する土俵が変わ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く