Hướng dẫn does javascript have a hash function? - javascript có hàm băm không?

Định nghĩa của JavaScript Hash []

Chức năng băm trong JavaScript là bất kỳ hàm nào lấy đầu vào dưới dạng dữ liệu kích thước tùy ý và tạo ra đầu ra dưới dạng dữ liệu kích thước cố định. Thông thường, giá trị trả về của hàm băm được gọi là mã băm, băm hoặc giá trị băm. Như đã đề cập, Hash trả về kích thước cố định, điều đó có nghĩa là bất kỳ kích thước nào của dữ liệu đầu vào, dữ liệu kích thước cố định sẽ được nhận sau khi xử lý dữ liệu đầu vào với hàm băm. Chúng ta hãy xem xét thêm chi tiết về chức năng băm trong các phần sau, chẳng hạn như cú pháp, làm việc, ví dụ và lợi thế.

Syntax:

Dưới đây là cú pháp của hàm băm.

function func[string]
{
//set variable hash as 0
var hash = 0;
.. . .. . .
return hash;
}

Ở đây, giá trị băm sẽ được trả về nếu hàm này được gọi.

Hàm Hash [] hoạt động như thế nào trong JavaScript?

Trong bảng băm, hàm băm sẽ được sử dụng để tính toán chỉ mục thành một mảng các khe hoặc xô, từ đó giá trị ưu tiên có thể được xác định. Giả sử mã sau phải được sử dụng để xây dựng.

constemp = {
name: 'Anna',
place: 'Canada',
age: 29,
}

Các mảng giống nhau sẽ được hiển thị dưới đây.

constemp = [29, 'Anna', 'Canada']

Để có được chỉ số phù hợp về tên, địa điểm và tuổi, các hàm băm phải được gọi như hình dưới đây.

  • Để có được chỉ số tên, Hashfunc [tên tên] sẽ được gọi và 1 sẽ được trả về.
  • Để có được chỉ số của địa điểm, Hashfunc [nơi đặt chỗ] sẽ được gọi và 2 sẽ được trả lại.
  • Để có được chỉ số tuổi, Hashfunc [tuổi Age Age] sẽ được gọi và 0 sẽ được trả lại.

Vì không có thứ tự cụ thể trong mảng, chỉ mục của mảng chỉ bị ràng buộc với khóa. Bây giờ, chúng ta hãy xem các ràng buộc hàm băm:

1. Nó nên được xác định

Giả sử chúng ta nhập cùng một khóa; Chỉ số mảng tương tự nên được trả về. Mặt khác, giá trị won được tìm thấy khi dữ liệu không làm thay đổi vị trí của nó trong mảng. Ví dụ, chúng ta hãy xem xét const hash2 = [num] => num % 9 có thuộc tính xác định. Đồng thời, const hash2 = [num] => num % 9 + math.random [] won được sử dụng, vì đối với các cuộc gọi khác nhau của hash2 sẽ thu được kết quả khác nhau cho cùng một đầu vào. Hơn nữa, các hàm băm này đôi khi nhận được một tham số bên ngoài để băm. Giả sử, const hash3 = [num, param] => num % param, hash3 sẽ có thuộc tính xác định, vì cùng một dữ liệu được đưa ra là đầu vào và các tham số tương tự, cùng một đầu ra sẽ được trả về.

2. Nó phải nhanh

Hàm băm phải được sử dụng mỗi khi chúng tôi tạo, đọc, cập nhật hoặc xóa dữ liệu. Do đó, hàm băm phải nhanh và hơn nữa, nó không nên được kết nối với độ dài dữ liệu hiện có. Đó là, O [1].

3. Nó phải được phân phối đồng nhất

Giả sử có một mảng có độ dài 3. Nếu phải thêm 3 địa điểm vào một mảng có 2 vị trí để lưu trữ dữ liệu, 2 giá trị phải được lưu trữ ở 1 vị trí. Vì tình huống này gây ra sự va chạm [hai giá trị đặt ở một vị trí], dẫn đến công việc tính toán nhiều hơn, phân phối đồng đều phải được thực hiện cho các chỉ mục mảng. Ví dụ, trong ví dụ trước, Hash2 [1] = Hash2 [10]. Điều quan trọng là đối với hàm băm tốt, hai giá trị khác nhau cho A và B nên được xem xét [băm [a] = băm [b]]. Các thuật toán như lực lượng vũ phu có sẵn để xác định các giá trị đó cho các hàm băm tốt. Nhưng, đối với một số hàm băm, trên một nhóm siêu máy tính bình thường, phải cần hàng triệu năm để tìm các giá trị như vậy.

4. Nó phải không thể tin được

Thuộc tính quan trọng cuối cùng của hàm băm là thuộc tính không thể tin được. Điều đó có nghĩa là, nếu có sẵn mã băm, dữ liệu gốc không thể được khôi phục mà không sử dụng nhiều tài nguyên để tính toán. Hơn nữa, nó không thể tìm thấy dữ liệu gốc. Đó là, nếu một mã băm H có sẵn, giá trị x không thể được tìm thấy, đó là băm [x] = h. Bây giờ, chúng ta hãy xem làm thế nào một hàm băm phải được tạo.

Tạo một hàm chức năng và đặt biến băm là 0. sau đó thực hiện mã hóa khi cần thiết. Dưới đây là hàm băm mẫu.

function func[string] {
//set variable hash as 0
var hash = 0;
// if the length of the string is 0, return 0
if [string.length == 0] return hash;
for [i = 0 ;i

Bài Viết Liên Quan

Chủ Đề