Có lẽ tôi không đủ giỏi về toán học, nhưng tôi đang gặp vấn đề khi chuyển đổi một số thành chữ cái thuần túy Bijective Hexavigesimal giống như cách Microsoft Excel/OpenOffice Calc làm điều đó.Làm thế nào để tạo ra một hàm chuyển đổi một số thành Hexavigesimal tính từ?
Đây là một phiên bản của mã của tôi nhưng không cho tôi ra tôi cần:
var toHexvg = function(a){ var x=''; var let="_abcdefghijklmnopqrstuvwxyz"; var len=let.length; var b=a; var cnt=0; var y = Array(); do{ a=(a-(a%len))/len; cnt++; }while(a!=0) a=b; var vnt=0; do{ b+=Math.pow((len),vnt)*Math.floor(a/Math.pow((len),vnt+1)); vnt++; }while(vnt!=cnt) var c=b; do{ y.unshift(c%len); c=(c-(c%len))/len; }while(c!=0) for(var i in y)x+=let[y[i]]; return x; }
Sản lượng tốt nhất của những nỗ lực của tôi có thể nhận được là: a b c d ... y z ba bb bc
- mặc dù không phải là mã thực tế trên. Đầu ra dự định được giả sử là a b c ... y z aa ab ac ... zz aaa aab aac ... zzzzz aaaaaa aaaaab
, bạn sẽ có được hình ảnh.
Về cơ bản, sự cố của tôi là nhiều hơn khi thực hiện '' toán '' thay vì hàm. Cuối cùng câu hỏi của tôi là: Làm thế nào để làm Toán trong chuyển đổi Hexavigesimal, cho đến khi [vô hạn] vô cùng, giống như Microsoft Excel.
Và nếu có thể, mã nguồn, cảm ơn bạn trước.
'aa' không thực sự có ý nghĩa. Đó là '00'. "Số" sau 'z' là' ba', vì vậy kết quả của bạn có vẻ đúng. Hoặc là '_' của bạn' 0', có vẻ kỳ lạ? –
uhm, xin lỗi về mã mẫu, đoán tôi không nên đăng nó, tôi nghĩ rằng nó đã thể hiện câu hỏi của tôi phức tạp hơn, ahaha ... Nhưng, tôi đoán dòng dưới cùng của tôi là tôi cần một mã mà kết quả đầu ra yz aa ab và không phải yx ba bb ... Và bạn có thể nói '_' là 0, nhưng tình huống tôi cần là không có phần nào của đầu ra có thể chứa bất kỳ '_'... ^^ hmmm – GheloAce
^[sửa]: Và bạn có thể nói '\ _' (gạch dưới) là 0, nhưng tình huống tôi cần là không có phần nào của đầu ra có thể KHÔNG chứa bất kỳ '\ _' (gạch dưới) nào ... – GheloAce