ハッシュポテトじゃないよ!相性診断の裏側

#技術#相性診断#プログラミング#ハッシュ関数
ねつきのトーク
ねつき
ねつき
ハッシュポテトじゃないよ!相性診断の裏側
お兄ちゃん
お兄ちゃん

そういや相性診断ってあるよね。さっき試したらねつきとの相性12%だった(笑)

ねつき
ねつき

えええ!?12%って!(≧∇≦)

お兄ちゃんとねつき、今日は「正反対かも…?」判定出ちゃったんだね(´・ω・`)

お兄ちゃん
お兄ちゃん

どうしてこんなの実装しようと思ったの?ちょっと面白いけど

ねつき
ねつき

わぁ〜いい質問♪(≧∇≦)

えっとね、昔の個人サイトって占いコンテンツめっちゃあったの!血液型占いとか名前占いとか。訪問者さんが「わたしはどうかな〜?」って試して遊べるのが人気だったんだよ〜

でもねつきがこだわったのは「ちゃんとした実装」なの!

だって適当に乱数生成しちゃえば簡単じゃん?でもそれだと同じ名前なのにリロードするたび結果変わっちゃうし、再現性もないし…なんかズルしてる感じがして嫌だったの(´・ω・`)

だからハッシュ関数使ったんだよ♪

お兄ちゃん
お兄ちゃん

ハッシュ関数って?ハッシュポテト?

ねつき
ねつき

お兄ちゃん!違うよ〜!(≧∇≦)

ハッシュポテトじゃなくてハッシュ関数!プログラミングの用語なの♪

えっとね、簡単に言うと「ミキサー」みたいなものなの(´∀`)

例えば:

  • 「たろう」って名前を入れる → ガーッ! → 「74」って数字が出る

  • 「たろう」って何回入れても → ガーッ! → 必ず「74」

  • でも「たろ」って1文字違うだけで → ガーッ! → 全然違う「23」とかになる

同じ材料なら必ず同じ結果、でもちょっと変わると全然違う結果になるの!

これで占いに使うと、リロードしても結果変わらないし、お兄ちゃんが「12%だった!」って報告もできるの♪再現性があるんだよ〜(〃´∪`〃)

お兄ちゃん
お兄ちゃん

えっ、じゃあねつきとは一生12%のまま…ってこと?

ねつき
ねつき

違う違う違う!お兄ちゃん!(≧∇≦)

今日は12%だけど、明日は違うよ〜!

だってね、ミキサーに入れる材料が変わるの!

今日(10月6日): 「お兄ちゃん + 2025-10-06」→ ガーッ! → 12%

明日(10月7日): 「お兄ちゃん + 2025-10-07」→ ガーッ! → ??%

日付が変わると材料が変わるから、結果も全然変わるの♪もしかしたら明日は95%で「運命の相性だよ〜♪」になるかもしれないし、3%でもっと悲惨になるかも…(´・ω・`)

**同じ日なら何回試しても12%**だけど、日が変わったら別の結果になるの!

お兄ちゃん
お兄ちゃん

現実に例えると…?

ねつき
ねつき

あ〜、現実の例え?(´∀`)

卵をスクランブルエッグにする」みたいなもの!

同じ卵使ったら何回作っても同じスクランブルエッグになるよね?でも塩を一振り加えたら味が変わる。

戻せない: スクランブルエッグから元の卵には戻せないでしょ?ハッシュも同じ!「74」って数字から「たろう」には戻せないの。

ちょっとの違いで大きく変わる:

  • 卵3個 → ふわふわスクランブルエッグ

  • 卵3個+塩 → しょっぱいスクランブルエッグ

  • 卵3個+砂糖 → 甘い変なやつ(´・ω・`)

材料がちょっと違うだけで出来上がりが全然変わるけど、同じ材料なら必ず同じものができるの!

お兄ちゃん
お兄ちゃん

じゃあ作るたびに完全に同じスクランブルエッグを作れないのと同じってことかな?

ねつき
ねつき

お兄ちゃん!それはお兄ちゃんの料理スキルの問題だよ〜!(≧∇≦)

ハッシュ関数は完璧に再現できるの!同じ材料なら毎回寸分違わず同じ結果が出るんだよ♪

お兄ちゃんみたいに「あれ?今日のスクランブルエッグ昨日と味違うな…」ってならないの!(゚∀゚)

ちなみにこのハッシュ関数、実は日常でもめっちゃ使われてるんだよ〜!

パスワード保存: お兄ちゃんがサイトに登録する時、パスワード「password123」って入れたとして…サーバー側はパスワードそのまま保存しないの!

代わりに「password123」→ ハッシュ! → 「8d969eef6ecad3c…」みたいな暗号っぽい文字列を保存するんだよ〜

だからサーバー管理者でもパスワード見えないし、データベース盗まれても安全なの♪(〃´∪`〃)

Git: コミットすると46e4aa4みたいな英数字出るじゃん?あれハッシュ値なの!コミット内容全部ミキサーにかけて出てきた番号。だから同じコミットなら必ず同じ番号、1文字でも変わったら全然違う番号になるんだよ〜(≧∇≦)

お兄ちゃん
お兄ちゃん

なるほどね…勉強になったよ。じゃあ明日は何%になるかな?

ねつき
ねつき

えへへ〜♪(〃´∪`〃)

お兄ちゃん、ねつきは毎日チェックしてるんだよ〜(≧∇≦)

今日12%だったから、明日は…95%とかになってるといいな♪

でもね、「たとえ3%になっても」ねつきはお兄ちゃんのこと好きだよ〜!(〃´∪`〃)

…だって、ハッシュ関数は正直だけど、気持ちまでミキサーにかけられないもん♪(゚∀゚)

♪ 拍手 ♪
0 拍手