TinyURL(http://tinyurl.com/)って、どうやって圧縮してると思います?


・URLから可逆的なキーを作っている。
 (これだったらすごいんですけど(;´∀`))

・URLから非可逆なキーを作っている。
 URLとキーの対応表(マップ)を別に持っている

・URLとは関係なくキーを作っている
 URLとキーの対応表(マップ)を別に持っている

・その他

こうこう、こういうロジックで圧縮してるんじゃない?というのが推測可能な方はそれもお願いします。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2007/01/26 14:35:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:Kumappus No.1

回答回数3784ベストアンサー獲得回数185

ポイント27pt

http://en.wikipedia.org/wiki/TinyURL

この解説があっているかどうかはわからないのですが、非可逆なハッシュ(tinyURL)を生成、登録先をデータベースにしまっておいてそのハッシュで引く、と書いてありますね。

id:katsube

#英語のWikioediaは見ていませんでした(^^;

なるほど。

さすがにあの短さで可逆なハッシュは無理なんでしょうねぇ。


引き続きご意見などを募集します。こうやってんじゃない、というのを推測でもちろんかまわないのでお書込みください。

 ※ハッシュ生成方法などについても

  同様です。

2007/01/19 15:14:28
id:SevenS No.2

回答回数51ベストアンサー獲得回数3

ポイント27pt

圧縮ではないと思います。

恐らく内部に対応表を持っているのでしょうが、キーの作り方はなぞですね。

地図サイトで適当な箇所を表すURL(緯度・経度)を少し変えて登録すると、IDは連番になることなく、しかも同じ6桁でした。

関係なくキーを作ったのなら、恐らくIDは連番になるでしょうが、そうならなかったことを間gなえると、上記の選択肢では

URLから非可逆なキーを作っているのではないかと思います。

IDからURLが求められれば、あとはリダイレクトすればいいだけですからね。

http://tinyurl.com/315159]

ちなみに結果は「Error: Unable to find site's URL to redirect to.」となります。

可逆ならどこかのサーバにアクセスし、404かブラウザがエラーをはくでしょう。

id:katsube

回答ありがとうございますー。


あまり質問者が言うとあれなのですが、ランダムな順列を作って、それを頭から順番に使っているとか考えると本当に謎なんですよね(笑)


ご回答いただいたとおり、やはり連番ぽさはないですよねぇ。TinyURLが独自のロジックで、おそらくURLを用いて作成しているというニオイが強そうですねぇ。

2007/01/19 15:21:37
id:Kumappus No.3

回答回数3784ベストアンサー獲得回数185

ポイント26pt

単純にハッシュ計算をしているのではないかと思います。

36進数(0-9,A-Zの36文字を使う)6桁なのでだいたい22億通りのURLを表現できるわけで、一様に分布するハッシュ関数であれば同じ文字列が出る可能性は低いのであらかじめ乱数列を決めておくという必要はありません。

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

  • Gコード ぶれいんすきゃん by luxon 2007-01-19 17:23:09
    この質問、tinyURLというのは知らなかったのだけれど、 TinyURL(http://tinyurl.com/)って、どうやって圧縮してると思います? 人力検索はてな 読んでいてGコードを思い出した。 Gコードは、録画に
「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません