101
loveour 3 天前
咱们之前很多地方电话号码还是 7 位数,更早甚至更短,为什么一开始不设计成 8 位数?因为增加位数是真的要成本的。最早的长途电话是怎么拨通的?是人工转接。为什么后来叫程控电话?因为很晚才出现可以自动拨打长途的电话。电话本身由于管理需要,号码也不是无规律的,而是比如最前面是长途区号,中间有电话局的号段,最后才是个人号码。这个数字资源是很宝贵的,打错电话概率不高打错了成本也不高。现在的号码在升级的时候为了简单也尽量是原来的号码直接加一个固定数字。
为了解决这个问题去浪费号段资源,去修改以前已经形成的大量号码,搞一个复杂没法记忆的规则加号码,这才是有问题的吧。 |
![]() |
102
cenbiq 3 天前
@KingHL 看了你的和上面一些评论,我发现这个程序员论坛居然还有挺多人不知道 checksum 是什么,电话号码没有规律并不影响 checksum ,checksum 的作用是检查输入是否具有意义。比如说第一个为 1 第二个为 2 第三个为 3 ,那么最简单的 checksum 就是依次相加,得到第四位是 6 ,也就是说当你输入 1-2-3 的时候,第四位如果不是 6 就一定是个错误的电话号码,当然相加得出来可能>9 ,所以真实情况会用别的 checksum 算法,比如 CRC ,或者异或。
|
103
evilwk 3 天前
为了一个小概率事件,没有任何意义,现在的手机有一项功能叫联系人
|
![]() |
104
Sentimental 3 天前
问题的前提应该是输错的概率是多少
|
![]() |
105
liprais 3 天前
楼主晚出生五十年
|
107
littlewing 3 天前
@PeakFish 就像身份证好最后一位一样
|
108
thevita 3 天前
其实 更大可能是 reuse 了
|
![]() |
110
nedqqcc 3 天前
说真的,还有人能接到正经电话吗?
1. 快递+外卖+平台客服,这类看到的基本都是虚拟号,不存在打错的可能 2. 家人,不说 60 后的父母辈,爷爷奶奶辈用微信打电话的都不少,毕竟“免费” 3. 正规机构,政府,银行,保险等,这批人打错概率很低,频率也不高 99.9%电话无非就是广告推销 |
![]() |
111
424778940 3 天前
不是等一下 为什么有一种弱智吧老哥的感觉
多加一位难道不用人记住吗? 能记住不还是有可能记错吗? 虽然能拦住一部分记错的人打出去 但解决不了根本问题 |
112
zmcity 3 天前 ![]() 电话号码是路由表,格式是(区号)-(移网/固网识别号)-(运营商编码)-(总机号)-(分机号),一位校验位恐怕不够呦
|
![]() |
114
swordspoet 3 天前
这是一个很好的问题。
|
![]() |
115
msg7086 3 天前
所以,为什么域名和 IP 地址不加校验?
v2ex.com0B20DC1D 多好呀,不怕输错域名了(狗头 |
116
julyclyde 3 天前
一位校验码扛不住的
我见过银行卡号输错还能汇款成功的 技术手段解决不了人傻的问题 |
![]() |
117
cherryas 3 天前
多加一位数记忆成本好几倍。
参考验证码,4 位数不需要记,6 位数 1 秒 ,8 位数要 5 秒, 11 位和 12 位看似差一位,实际沟通成本增加 5 秒不过分吧。 |
![]() |
118
cenbiq 3 天前
@shine1996 当然可以解决,我上面已经举例子了,如果是 3 位数字+1 位依次相加校验码,那么输入 1-2-3 之后必须输入 6 。以这个举例子,你把 123 想象为对方手机号前 len-1 位,最后一位为校验位,那么 1236 是唯一的 123 开头的手机号码的可能形式,输入 1235 或者 1246 一定判定为错误手机号。
|
![]() |
119
cenbiq 3 天前
@nedqqcc 这倒是,因为手机电话发明出来之后马上进入移动互联时代,这导致手机号播错已经不是啥大问题了。现在联系方式多种多样,还有通讯录不需要人工输入手机号,唯一的作用就是在面对面添加对方手机号的时候能当场输入当场验证,不过这点也被直接播对面号码解决了。校验码的想法是对的,就像有人说的身份证就是这样,只不过时代变了这个需求没那么硬了。
|
![]() |
120
lambdaq 3 天前
汽车为啥不加个火箭发动机,这样可以起步更快
|
![]() |
122
sun019 3 天前
需求确定,这个就是技术上实现没问题,但现实中扯蛋的伪需求。
什么叫拨错,拨错的意思是没存在电话薄里面或者凭记忆输入的号码。 就是这个号码没有一个电话本对应于你要拨给谁的,只是凭记忆。 这个记忆,怎么映射拨错号码是否对呢? |
![]() |
124
greensea 3 天前
其实我有一个不成熟的建议,与其加一个检验位,不如允许用户在现有号码基础上,任意添加一个 4 位尾数,这样可以有效打击号码倒卖。
比如说我的号码是,13800138000 ,当我开启了这个功能点后,直接拨打这个号码是无法接通的,必须输入一个我设定的 4 位尾数(例如 1357 ),才能接通。我可以把 1380013800-1357 这个号码告诉熟人,这样他们可以通过电话联系到我。 现在重点来了,我不仅可以指定 1357 这个尾数,我还可以指定任意尾数,于是: 在淘宝留的快递电话:13800138000-1111 去看房子时留的联系方式:13800138000-2345 去 XXX 的时候留的联系方式:13800138000-9876 当别人拨打这个号码的时候,局方的通话记录中会记录(并允许用户查询)这个尾号。好的,这下谁卖了我的号码可就一清二楚了。 |
125
shine1996 3 天前
@cenbiq 是的, 我意思只解决了接到电话的人的问题, 不会被骚扰, 就像是访问输入网址网站一样,
诶输错了,进入一个不认识的网站, 为什么会输入错误呢, 怎么解决输入错误的问题, 就是浏览器书签和电话本一样这是最佳的方案, 而不是增加用户输入成本不让你访问 |
126
wysnxzm 3 天前
bro 是特工,也把别人当特工
|
![]() |
127
niubiman 3 天前
和"您所拨打的用户是空号"效果是一样的, 但是代价太大, 典型的"可以, 但没必要"
|
128
iocntop 3 天前
这是个好问题,这个需求能解决很多人的问题,你的解决办法也很好,你可以针对这个痛点进行延伸并创业
|
129
Kiriya 3 天前
若无必要,勿增实体
|
131
aloxaf 3 天前
@PrinceofInj 我也非常震惊,点进来之前估计以为是讨论什么历史遗留问题之类的,结果很多人竟然连 checksum 是什么都不理解,还在嘲讽可行性……
|
![]() |
132
xkeyC 3 天前
然后某某系统:增加自动计算 checksum 功能,只需记忆前缀号码,一键回到解放前(
|
![]() |
133
zengxs 3 天前
不如先考虑下,你这个出发点「降低错误拨号」,对运营商是有利还是不利
|
![]() |
134
noErr 3 天前
经常接到有人输错号码打错的电话 - 有多经常
|
![]() |
136
jim9606 3 天前 via Android
这东西属于一开始没有的后面就没法加了。国内固话搞过升位也只敢加前缀。
|
![]() |
137
metaclass 3 天前
有校验位想要凑靓号就很难办了,不可避免会生成比如 4 和 13 之类的,会浪费一些好的号码,除非在校验位里再加入一个算法信息,有多个算法可供选择生成校验位这样能够避免一些不靓的
|
138
jaydenhu8077 2 天前
@cenbiq 我还是没懂加一位 checksum 来解决输错号码而打错电话的情况?现在有两个人 A\B ,A 的电话 123456 ,B 的电话 123457 ,我想要打给 B 的,但是我输入成 A 的电话号码了,这种情况你怎么解决或者提醒我打错了?因为用户输入的电话号码肯定是唯一的,如果这个号码存在肯定是能呼出成功的啊,号码不存在现在已经有这个功能了“您拨叫的号码为空号”。
|
139
jxl 2 天前
@jaydenhu8077 想的一样,程序是无法识别人类的主观意思的对错。
|
140
lumia1020 2 天前
既然实名制,还不如拨号后,直接查询数据库显示姓名的某个字,来确定是否继续拨打。
但运营商做这个没有驱动力,运营商宁愿做流氓视频彩铃。 |
141
guiys 2 天前 via Android
极小众没必要。99.9%的电话是从名片打出来的
|
![]() |
142
williampan 2 天前
你就是以本我的角度出发,破坏盈利模式呀
|
![]() |
143
yh7gdiaYW 16 小时 11 分钟前
@cenbiq 你这个"大多时候"就是你自己按自己的经历假定的,换个人比如我就没感觉到单纯按错键的占比有这么高。你这个方案是通过给所有人增加复杂度的方式,解决了一部分打错电话的情况,这听起来很像游戏策划的风格...
|
![]() |
144
cenbiq 15 小时 44 分钟前
@jaydenhu8077 你的例子就很适合,checksum 就是可以防止你说的这种情况,比如说按照某种 checksum 算法 12345-后面只能跟 6 ,那么你输入 7 一定提示你号码不存在/验证失败,你拨给 123457 拨不出去因为不符合 checksum 规则,它不是一个可能的号码。如果错中间 N 位同样过不了 checksum ,除非你的错误正好原号码位和 checksum 位都对应了,那这就很巧了(类似于 md5 碰撞
|