URLのパス名から導出されたハッシュ値の分布
パスの先頭文字では駄目だと分かったから,次はハッシュ値を使ってみた.
と言っても,ハッシュ関数は「パスを構成する文字の文字コードの和 % 10」という単純なもの.上記と同じく,約30万件のデータを分析した結果を以下に示す.
フォーマットは「ハッシュ値 : 出現頻度 : 割合(%)」.
0 : 30286 : 9.953692 1 : 30534 : 10.035199 2 : 30226 : 9.933973 3 : 30323 : 9.965853 4 : 30386 : 9.986558 5 : 30534 : 10.035199 6 : 30506 : 10.025997 7 : 30785 : 10.117692 8 : 30283 : 9.952706 9 : 30406 : 9.993131
綺麗に等分されたね.
ちなみに 100 の剰余を取った結果は以下のとおり.これでもいけそうだが,テーブル数が多くて嫌になるかも.
0 : 2893 : 0.9508034 1 : 3012 : 0.9899136 2 : 2925 : 0.9613204 3 : 3026 : 0.99451476 4 : 2949 : 0.9692081 5 : 3063 : 1.006675 6 : 3091 : 1.0158775 7 : 3139 : 1.0316529 8 : 3141 : 1.0323102 9 : 3185 : 1.046771 10 : 3278 : 1.0773362 11 : 3316 : 1.0898252 12 : 3260 : 1.0714203 13 : 3323 : 1.0921258 14 : 3444 : 1.1318932 15 : 3418 : 1.1233481 16 : 3503 : 1.151284 17 : 3572 : 1.1739612 18 : 3465 : 1.138795 19 : 3502 : 1.1509552 20 : 3535 : 1.1618009 21 : 3508 : 1.1529272 22 : 3449 : 1.1335365 23 : 3479 : 1.1433961 24 : 3483 : 1.1447108 25 : 3518 : 1.1562138 26 : 3438 : 1.1299212 27 : 3360 : 1.1042861 28 : 3346 : 1.0996848 29 : 3361 : 1.1046147 30 : 3299 : 1.0842379 31 : 3221 : 1.0586027 32 : 3275 : 1.0763502 33 : 3240 : 1.0648472 34 : 3296 : 1.0832521 35 : 3230 : 1.0615606 36 : 3403 : 1.1184182 37 : 3253 : 1.0691198 38 : 3278 : 1.0773362 39 : 3353 : 1.1019853 40 : 3370 : 1.1075726 41 : 3404 : 1.1187469 42 : 3337 : 1.0967269 43 : 3354 : 1.102314 44 : 3338 : 1.0970556 45 : 3331 : 1.0947549 46 : 3311 : 1.0881819 47 : 3360 : 1.1042861 48 : 3380 : 1.1108592 49 : 3301 : 1.0848953 50 : 3227 : 1.0605747 51 : 3262 : 1.0720776 52 : 3211 : 1.0553162 53 : 3100 : 1.0188353 54 : 3140 : 1.0319816 55 : 3180 : 1.0451279 56 : 3155 : 1.0369115 57 : 3128 : 1.0280377 58 : 3100 : 1.0188353 59 : 3093 : 1.0165347 60 : 2928 : 0.9623064 61 : 3007 : 0.9882702 62 : 2972 : 0.9767673 63 : 2892 : 0.95047474 64 : 2937 : 0.96526426 65 : 2877 : 0.9455449 66 : 2723 : 0.8949318 67 : 2827 : 0.9291121 68 : 2602 : 0.85516435 69 : 2536 : 0.83347297 70 : 2568 : 0.84399 71 : 2560 : 0.84136075 72 : 2560 : 0.84136075 73 : 2559 : 0.84103215 74 : 2494 : 0.8196695 75 : 2452 : 0.8058659 76 : 2532 : 0.83215845 77 : 2600 : 0.85450697 78 : 2516 : 0.8268999 79 : 2571 : 0.844976 80 : 2566 : 0.8433327 81 : 2538 : 0.8341303 82 : 2547 : 0.83708817 83 : 2604 : 0.85582167 84 : 2592 : 0.8518778 85 : 2682 : 0.88145685 86 : 2603 : 0.855493 87 : 2628 : 0.8637094 88 : 2627 : 0.86338073 89 : 2601 : 0.8548356 90 : 2622 : 0.8617375 91 : 2706 : 0.88934463 92 : 2690 : 0.8840861 93 : 2746 : 0.90249085 94 : 2713 : 0.89164525 95 : 2783 : 0.91465116 96 : 2747 : 0.9028195 97 : 2918 : 0.95901984 98 : 2828 : 0.92944074 99 : 2903 : 0.95408994