首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >算法-缩短+10位字符串

算法-缩短+10位字符串
EN

Stack Overflow用户
提问于 2016-12-04 11:52:29
回答 3查看 662关注 0票数 2

我在一个项目中使用C#语言。我需要向用户提供大(9+数字)数字,他们将不得不重新输入到另一个系统(为以后的数据相关性)。让用户输入一个没有错误的大数字(手工)几乎是不可能的。

我一直在尝试用base64来缩短这个数字,但是我找到的所有代码都将创建一个字符和数字的字符串组合。有一个简单的数学算法,我可以用以使一个大的数字更小吗?结果应该是数字,而不是alpha数字。

EN

回答 3

Stack Overflow用户

发布于 2016-12-04 12:03:48

您以错误的方式解决了这个问题,而不是改变数字大小,而是为用户建立一种方便的方式来复制该数字,一个简单的键事件会将该数字复制到缓冲区,然后用户将不必将该数字写下来。

票数 0
EN

Stack Overflow用户

发布于 2016-12-04 12:10:27

只使用数字来减少一个数字是行不通的。

您真正需要的是某种形式的错误检查。其中一个非常好的工作是Verhoeff算法,它将检测几乎每一个错误。有许多例子可以在网上找到。

喜欢:https://www.codeproject.com/articles/15939/verhoeff-check-digit-in-c

票数 0
EN

Stack Overflow用户

发布于 2016-12-15 03:51:18

您可以使用哈希算法散列您的大数字,但您需要处理哈希冲突。其中一个非常容易实现的是校验和sum16:functions

请参见sum16,您只能拥有0-65536。想想sum18?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40958327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档