ããã«ã¡ã¯ï¼ãµã¼ããã¼ã ã® @metal_unk ã§ããæ®æ®µã¯ãµã¼ãã¼ãµã¤ãã¨ã³ã¸ãã¢ã¨ãã¦ãã¡ã«ã«ãªã®æ¤ç´¢ãæ¹åããä»äºããã¦ãã¾ãã
ã¡ã«ã«ãªã«ã¯ Be Professional Day ã¨ãããæ®æ®µã§ããªããã¨ãããããããã¼ãã¨ããæ¥ãããããã®æ¥ã¯æ¥åã«ç´æ¥é¢ä¿ã®ãªããã¨ããæ®æ®µã¯æãã¤ããããªããªãã¡ã¯ã¿ãªã³ã°ãªã©ãããã¾ããBe Professional Day ã®æ§åã¯ãã¡ãã§ç´¹ä»ããã¦ãã¾ãã
ãããã¯ä»åã® Be Professional Day ã§ãKnuth multiplicative hash ãæå°å®å ¨ããã·ã¥ã§ãããã¨ã証æãã¾ããããã®ããã°ã¯ãã®è¨¼æã«ã¤ãã¦ã®è¨äºã§ãã
ãæ®æ®µã§ããªããã¨ãããããã¨ãã Be Professional Day ã§ã¯ã証æãã¢ãªã§ãã
Knuth multiplicative hash ã¨ã¯
ã³ã³ãã¥ã¼ã¿ãµã¤ã¨ã³ã¹ã®æå人ã§ãã Donald Knuth ããããèæ¸ “The Art of Computer Programming” ã§èª¬æãã¦ããããã·ã¥é¢æ°ã§ãã
Knuth multiplicative hash ã表ãé¢æ°ã以ä¸ã¨ãã¾ããï¼å¾ã®è¨¼æã®ããããããã®ãããç´°ããé¨åãå¤ãã¦ãã¾ãããæ¬è³ªçã«ã¯åããã®ã§ãï¼
ããã§ã 㯠3 以ä¸ã®ç´ æ°ã ã¯2ã®ã¹ãä¹ã§ãããããªæ´æ°ãéå ã¨ããã¨ãé¢æ° 㯠ãã ã¸ã®å¤æååã§ãã
æå°å®å ¨ããã·ã¥é¢æ°ã¨ã¯
Wikipedia ã«ããã¨ãå®å ¨ããã·ã¥é¢æ°ã¨ã¯ä»¥ä¸ã®éãã§ãã
ããã·ã¥é¢æ°ãåå°ã®å ´åãããªãã¡æ£ããå ¥åã«å¯¾ãã¦å¿ ãç°ãªãããã·ã¥å¤ã対å¿ããå ´åããããå®å ¨ (perfect) ã ã¨ããã
ããã«ãå®å ¨ããã·ã¥é¢æ°ã®ç¹æ®ã±ã¼ã¹ã§ãããæå°å®å ¨ããã·ã¥é¢æ°ã®èª¬æã¯ä»¥ä¸ã®éãã§ãã
n åã®ãã¼ã«å¯¾ããå®å ¨ããã·ã¥é¢æ°ãæå° (minimal) ã§ããã¨ã¯ããã®å¤åã n åã®é£ç¶ãªæ´æ°ï¼é常 0 ãã n-1ï¼ã®å ´åã§ãããåã«åç §ãåç´åãããã ãã§ãªããããã·ã¥ãã¼ãã«ãã³ã³ãã¯ãã«ãªãã空ãã¹ããããã§ããªããæå°å®å ¨ããã·ã¥é¢æ°ã¯åãªãå®å ¨ããã·ã¥é¢æ°ãããæ±ããã®ãé£ããã
Wikipedia contributors. ããã·ã¥é¢æ°. Wikipedia. November 8, 2016, 15:00 UTC. Available at: https://ja.wikipedia.org/w/index.php?title=%E3%83%8F%E3%83%83%E3%82%B7%E3%83%A5%E9%96%A2%E6%95%B0&oldid=61853949. Accessed November 8, 2016.
ããã§ãæå°å®å ¨ããã·ã¥ã¯æ°å¦ã®è¨èã使ãã¨ãå ¨åå°ã§ããé¢æ°ã¨ãè¨ãã¾ãã
ã¡ã«ã«ãªã§ã®ä½¿ãé
ï¼ãããã¯è¨¼æãããã ããªã®ã§ä¼èã§ããï¼ããå é¨ id ãããã·ã¥å / 復å ããããã®é¢æ°ãå¿ è¦ã¨ããã¦ãã¾ãããKnuth multiplicative hash ã¯ãã®æ¡ä»¶ãæºãããè¨ç®æéãé«éã§ããããæ¡ç¨ããã¾ããã
証æããæå³
Knuth multiplicative hash ãæå°å®å ¨ããã·ã¥ã§ãã証æãè¦ã¤ãããªãã£ãã®ã§ã証æãã¾ããã
ãããæå°å®å ¨ããã·ã¥ã§ãããã¨ãããããªãã£ãããè¡çªãã±ã¢ããã³ã¼ããæ¸ãå¿ è¦ããã£ããã1 ãã ã¾ã§ãå ¥åãã¦è¡çªããªããã¨ã確ããããã¹ããæ¸ãããããå¿ è¦ãããããããã¾ããã
ä»åã¯è¨¼æã«ãã£ã¦ã³ã¼ããæ¸ãããã¨ãã§ãã¾ãããæ°å¦ã¯æºä¸ã®ç©ºè«ã§ãã£ãããæ½è±¡çããããã®ã«ãªããã¡ã§ãããç¾å®ä¸çã®åé¡ãæ±ãããããã¯ãã®ããã«æ´»ç¨ã§ããã¨ãããã¨ã¦ãå¬ããã§ãã
ã§ã¯è¨¼æãå§ãã¾ããï¼ãããéä¸ã§é£½ãããé£ã°ãã¦æå¾ã ãèªãã§ãã ããï¼
証æ
Knuth multiplicative hash ã ã¨ãã¦ä»¥ä¸ã®ããã«è¡¨ãã
ããã§ã 㯠3 以ä¸ã®ç´ æ°ã ã¯2ã®ã¹ãä¹ã§ãããããªæ´æ°ãéå ã¨ããã
æ°ãã« floor é¢æ° ãå©ç¨ãã¦ã ã¯ä»¥ä¸ã®ããã«æ¸ããã
ããã§ãé¢æ° 㯠ãã ã¸ã®å¤æååã§ããããã ã¯åå°ã®ã¨ãå ¨å°ã§ãããããã£ã¦ãããã§ã¯ ãæå°å®å ¨ããã·ã¥ã§ãããã¨ã証æããããã«ã ãåå°ã§ãããã¨ã示ãã示ããããã®ã¯ä»¥ä¸ã
ããä»»æã«è¦ç´ ã2ã¤åå¾ããå°ããæ¹ã , 大ããæ¹ã ã¨ãããï¼ï¼
ãä»®å®ããã¨ã
ãã®ã¨ãã
… â
ã¨ãªããã㪠ãåå¨ãããããã® ã«ã¤ãã¦ä»¥ä¸ã®ãã¨ãè¨ããã
-
ã§ãããã
-
ã¨ä»®å®ããã¨ãâ ãã ã§ãããããã§ã ã«å¯¾ã㦠ãçç¾ãããã
次㫠â ããã
ããã« â ããã
ã ãã ã§ãããç´ æ°ã§ãã ã«ããã¦æ´æ°ã«ãªããããªæ°å㯠ã¨æ´æ°ã ãã§ãããã ã ã£ããã
以ä¸ã«ããã ã㤠ã§ãããã¨ããããã ã«å®ã¾ã£ãã
ãã£ã¦ã ã¯åå°ã§ãããKnuth multiplicative hash ã¯å®å ¨æå°ããã·ã¥ã§ãããã¨ã証æãããã
ãããã«
Knuth multiplicative hash ãæå°å®å ¨ããã·ã¥ã§ãããã¨ã証æãããã¨ã§ããããã¯ãã§å®å¿ãã¦å©ç¨ã§ããããã«ãªãã¾ããã
æ°å¦ã¯å®ç¨ã«é ãã¤ã¡ã¼ã¸ãããããããã¾ããããä¸çï¼ãã¡ããã¡ã«ã«ãªã®ä¸ã«ãï¼ï¼ã«ã¯æ°å¦ã§è§£ããåé¡ãããããåå¨ããã¯ãã§ããä»åã®ããã«è¨¼æãä¸ãããã¨ã§éæã§ãããã¨ããæ©æ¢°å¦ç¿ãæ°çæé©åã§è§£æ±ºã§ããåé¡ãããã¾ãããã®ãããªåé¡ãæ°å¦ã§è§£æ±ºãã¦ããããã§ãã
ã¾ããã¡ã«ã«ãªã§ã¯ãã®ãããªåé¡ãå ±ã«è§£æ±ºãã仲éãåéä¸ã§ãã
Software Engineer, Machine Learning/Natural Language Processing
èå³ã®ããæ¹ã¯ãã²ã飯ãé£ã¹ã«è¡ãã¾ãããï¼æ°è»½ã«èªã£ã¦ãã ãã ð
æå¾ã®æå¾ã«ãã¡ã«ã«ãªæ°å¦é¨ã¯æ¯é±ã¼ããå®æ½ãã楽ããè°è«ãã¦ããã¾ãããã¡ããé¨å¡åéä¸ã§ãï¼ï¼é¨å¡ã«ãªãããã«ã¯ç¤¾å¡ã«ãªãå¿ è¦ãããã¾ãï¼