- ベストアンサー
名前を元に占いができるサイトの仕組みとは?
- 名前を元に占いができるサイトの仕組みについてお伺いします。
- ユーザー名を入力して占いを行うサイトでは、ランダムに抽出しているわけではなく、過去のデータを引き継いで結果を出しています。
- 具体的な方法については分かりませんが、名前の文字列を特定の数値に割り当てて、データを抽出している可能性があります。phpやMySQLを使用することで実現できるかもしれません。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
【2】はさらに2種類に分けられるかと思います。 【2-1】実際の占いで伝統的に使われているアルゴリズムを実装している(例えば生年月日を入力させて九星の本命星を算出するように) 【2-2】入力からハッシュを取り、そのハッシュから簡単なアルゴリズムで結果に結びつける 特に根拠の無いお遊び的な占いを実装する場合は後者が楽じゃないでしょうか。 以下に簡単な例を示します。 $lucky_number = array( "0" => 0, "1" => 1, "2" => 2, "3" => 3, "4" => 4, "5" => 5, "6" => 6, "7" => 7, "8" => 8, "9" => 9, "a" => 10, "b" => 11, "c" => 12, "d" => 13, "e" => 14, "f" => 15, ); $lucky_color = array( "0" => "赤", "1" => "青", "2" => "黒", "3" => "白", // ・・・"4"~"f" 省略 ); $name = "yuuki0229"; // ユーザの入力値 $hash = md5($name); // 入力値のハッシュ値を取得 // "296bd82ada7ebb9e30f315271ad1830a"のような文字列が入ります echo "あなたのラッキーナンバーは ", $lycky_number[$hash[0]], " です\n"; echo "あなたのラッキーカラーは ", $lycky_color[$hash[1]], " です\n"; このようにハッシュを取ることでランダム(のよう)な値が取得できます。 上記の場合ハッシュ値の1文字目、2文字目を使っています。 各文字0~9、a~fの16文字出現しますので 結果も16パターンを用意しなければいけませんが、 工夫すればパターン数を増減できます。
お礼
ありがとうございます。 大変参考になりました。 まさに「【2-2】入力からハッシュを取り、そのハッシュから簡単なアルゴリズムで結果に結びつける」という形でやれたらと考えていました。 例に出していただいたものを参考に、進めてみたいと思います。 ありがとうございました。