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