Phiên bản ngắn: Làm cách nào để biến chuỗi tùy ý thành số có 6 chữ số với các va chạm tối thiểu?Tạo ISBN giả từ tên sách? (Hoặc: Cách băm chuỗi thành ID số gồm 6 chữ số)
phiên bản Long:
Tôi đang làm việc với một thư viện nhỏ mà có một loạt các cuốn sách không có ISBN. Đây thường là các tiêu đề cũ hơn, không còn xuất bản từ các nhà xuất bản nhỏ mà không bao giờ có ISBN để bắt đầu, và tôi muốn tạo các ISBN giả để họ có thể giúp quét mã vạch và cho vay.
Về mặt kỹ thuật, ISBN thực được kiểm soát bởi các thực thể thương mại, nhưng có thể sử dụng định dạng để gán số không thuộc về nhà xuất bản thực (và do đó không nên gây ra bất kỳ xung đột nào).
Định dạng là như vậy mà:
978-0-01-######-?
Cung cấp cho bạn 6 chữ số để làm việc với, 000.000-999.999, với sự? cuối cùng là một kiểm tra.
Bạn có thể chuyển tựa đề sách tùy ý thành số có 6 chữ số trong lược đồ này với cơ hội va chạm tối thiểu không?
Tại sao không chỉ định chúng tuần tự? –
Tôi nghĩ bạn cần khoảng ~ 1000 cuốn sách để có 50% cơ hội va chạm? – Mehrdad
@Damien_The_Unbeliever: Không thể, vì danh sách tiêu đề luôn thay đổi và phần mềm chúng tôi đang sử dụng (trong trường hợp này, Readerware, chương trình quản lý thư viện người tiêu dùng) không cho phép chúng tôi thao tác cơ sở dữ liệu ở cấp đó và tiếp tục theo dõi các ID duy nhất. Việc gắn ID vào tên sách là cách duy nhất tôi có thể nghĩ để làm cho ID tồn tại trong quá trình xuất/nhập CSV vào cơ sở dữ liệu nội bộ Readerware. – arcataroger