我正在为一个项目使用一种奇怪的专有脚本语言。我需要为用户提供一个大(14+ 位)数字,他们将不得不重新输入另一个系统(用于以后的数据关联)。让用户(手动)输入一个没有错误的大数字几乎是不可能的,而且无疑会剥夺用户的权利。
我一直在尝试提出一个解决方案来使用 base64 缩短该数字,但我发现的所有代码对于这种脚本语言来说都是复杂的。是否有一个简单的数学算法(无损压缩)我可以用来使大量更小?结果是字母数字很好。
我正在为一个项目使用一种奇怪的专有脚本语言。我需要为用户提供一个大(14+ 位)数字,他们将不得不重新输入另一个系统(用于以后的数据关联)。让用户(手动)输入一个没有错误的大数字几乎是不可能的,而且无疑会剥夺用户的权利。
我一直在尝试提出一个解决方案来使用 base64 缩短该数字,但我发现的所有代码对于这种脚本语言来说都是复杂的。是否有一个简单的数学算法(无损压缩)我可以用来使大量更小?结果是字母数字很好。
我认为你有更多的用户体验问题而不是数学问题。为什么不将要记住的数字分成2。一般人能够用他们的短期记忆记住和背诵7个数字。当然,它是基于旧的研究并取决于年龄和心智能力。
http://en.wikipedia.org/wiki/The_Magical_Number_Seven,_Plus_or_Minus_Two
谢谢大家的精彩讨论。我最终结合了你的许多建议。
我结束了使用base36(十六进制)对其进行编码并将字符串分隔成更小的块。
biziclop - 如果您提交了与评论相反的答案,我会接受它。你的 js 代码让我想到了正确的方向......谢谢!