mirror of
https://github.com/krahets/hello-algo.git
synced 2026-06-18 09:47:56 +08:00
Re-translate the Japanese version (#1871)
* Retranslate Japanese docs with GPT-5.4 * Retranslate Japanese code with GPT-5.4
This commit is contained in:
60
ja/codes/javascript/chapter_hashing/simple_hash.js
Normal file
60
ja/codes/javascript/chapter_hashing/simple_hash.js
Normal file
@@ -0,0 +1,60 @@
|
||||
/**
|
||||
* File: simple_hash.js
|
||||
* Created Time: 2023-08-06
|
||||
* Author: yuan0221 (yl1452491917@gmail.com)
|
||||
*/
|
||||
|
||||
/* 加算ハッシュ */
|
||||
function addHash(key) {
|
||||
let hash = 0;
|
||||
const MODULUS = 1000000007;
|
||||
for (const c of key) {
|
||||
hash = (hash + c.charCodeAt(0)) % MODULUS;
|
||||
}
|
||||
return hash;
|
||||
}
|
||||
|
||||
/* 乗算ハッシュ */
|
||||
function mulHash(key) {
|
||||
let hash = 0;
|
||||
const MODULUS = 1000000007;
|
||||
for (const c of key) {
|
||||
hash = (31 * hash + c.charCodeAt(0)) % MODULUS;
|
||||
}
|
||||
return hash;
|
||||
}
|
||||
|
||||
/* XOR ハッシュ */
|
||||
function xorHash(key) {
|
||||
let hash = 0;
|
||||
const MODULUS = 1000000007;
|
||||
for (const c of key) {
|
||||
hash ^= c.charCodeAt(0);
|
||||
}
|
||||
return hash % MODULUS;
|
||||
}
|
||||
|
||||
/* 回転ハッシュ */
|
||||
function rotHash(key) {
|
||||
let hash = 0;
|
||||
const MODULUS = 1000000007;
|
||||
for (const c of key) {
|
||||
hash = ((hash << 4) ^ (hash >> 28) ^ c.charCodeAt(0)) % MODULUS;
|
||||
}
|
||||
return hash;
|
||||
}
|
||||
|
||||
/* Driver Code */
|
||||
const key = 'Hello アルゴリズム';
|
||||
|
||||
let hash = addHash(key);
|
||||
console.log('加算ハッシュ値は ' + hash);
|
||||
|
||||
hash = mulHash(key);
|
||||
console.log('乗算ハッシュ値は ' + hash);
|
||||
|
||||
hash = xorHash(key);
|
||||
console.log('XORハッシュ値は ' + hash);
|
||||
|
||||
hash = rotHash(key);
|
||||
console.log('回転ハッシュ値は ' + hash);
|
||||
Reference in New Issue
Block a user