请问,a = b,b = c,是否 a = c

RT3254 2011-10-26 05:28:35
相等性传递,如果成立

那:

那如果用IEqualityComparer(Of T)接口,自定义一个相等比较器,一个数和比它大2的数相等,比如3和5相等,5和7相等,那根据传递性,3和7是不是相等呢,可是,这又不满足自定义的相等器规则啊
...全文
882 63 打赏 收藏 转发到动态 举报
写回复
用AI写文章
63 条回复
切换为时间正序
请发表友善的回复…
发表回复
言多必失 2011-10-27
  • 打赏
  • 举报
回复
引用:

感想:
1.
不管哪一种,3个月不用,就跟不会差不多了。
2.
逼急了要用,一个礼拜就能学会。
3.
没事休闲时间别老学语言,学学做人处事,再不然去游泳,打球,钓鱼都比学语言好。
fsdvf34 2011-10-27
  • 打赏
  • 举报
回复
[Quote=引用 45 楼 ailin84 的回复:]

我感觉你误解了,如果你实现了 3==5 ,5==7 那么 3==7 根据规则就是成立的.

你没有重写GetHashCode,就是获取这个对象的唯一标示,当你重写Equals时,如果不重写GetHashCode,生成时就会有警告,如果两个类型相同的对象表示相同的值,则哈希函数必须为两个对象返回相同的常数值

你的规则 3.GetHashCode()== 5.GetHashCode()
……
[/Quote]
可是 3 == 7 ,又不满足我的Equals方法的逻辑
ailin84 2011-10-27
  • 打赏
  • 举报
回复
我感觉你误解了,如果你实现了 3==5 ,5==7 那么 3==7 根据规则就是成立的.

你没有重写GetHashCode,就是获取这个对象的唯一标示,当你重写Equals时,如果不重写GetHashCode,生成时就会有警告,如果两个类型相同的对象表示相同的值,则哈希函数必须为两个对象返回相同的常数值

你的规则 3.GetHashCode()== 5.GetHashCode()
5.GetHashCode()=7.GetHashCode();

所以 3==7
雨者少年 2011-10-27
  • 打赏
  • 举报
回复
在程序设计中,肯定是不等的!但如果换个顺序,即 b=c,a=b ,那么a==c
雨者少年 2011-10-27
  • 打赏
  • 举报
回复
在程序设计中,肯定是不等的!但如果换个顺序,即 b=c,a=b ,那么a=c
MWJPM 2011-10-27
  • 打赏
  • 举报
回复
楼主的问题让我想起了学过的近世代数的群,环,域...,那是最纠结的时候
vector0429 2011-10-27
  • 打赏
  • 举报
回复
根据你的定义他应该是相等的呗
嘶吼的蚂蚁 2011-10-27
  • 打赏
  • 举报
回复
一个赋值操作引发的大争论!~
Daqing 2011-10-27
  • 打赏
  • 举报
回复
不等,因为你这个是赋值的话a和c没一点关系。
RT3254 2011-10-27
  • 打赏
  • 举报
回复
[Quote=引用 30 楼 rt3254 的回复:]

需要对称性么?
那这样:

用IEqualityComparer(Of T)接口,自定义一个相等比较器,一个数和比它大2的数、或比它小2的数相等,比如3和5相等,5和3也相等;5和7相等,7和5也相等,那根据传递性,3和7是不是相等呢,如果相等,又与本自定义比较规则不相符

楼上多为朋友谈到对称性,我现在就给一个对称性,

请解释...........
[/Quote]
请指教..
gama456 2011-10-27
  • 打赏
  • 举报
回复
我觉得吧 是= 还是== 是=就不成立
int64 2011-10-27
  • 打赏
  • 举报
回复
真是乱啊
小火龙果 2011-10-27
  • 打赏
  • 举报
回复
"="和"==" 在代码中含义是不同的
ruanwei1987 2011-10-27
  • 打赏
  • 举报
回复
mark 太乱了
raymond123456 2011-10-27
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 skyparty 的回复:]
写程序是自己创造简单的世界,如果不需要和其他世界有接口,那不妨可以改变自己世界中的数学及语……
[/Quote]

赞一个。
Tim_Andy 2011-10-27
  • 打赏
  • 举报
回复
整型不成立
RT3254 2011-10-27
  • 打赏
  • 举报
回复
需要对称性么?
那这样:

用IEqualityComparer(Of T)接口,自定义一个相等比较器,一个数和比它大2的数、或比它小2的数相等,比如3和5相等,5和3也相等;5和7相等,7和5也相等,那根据传递性,3和7是不是相等呢,如果相等,又与本自定义比较规则不相符

楼上多为朋友谈到对称性,我现在就给一个对称性,

请解释...........
youzelin 2011-10-27
  • 打赏
  • 举报
回复
如果按照一定的规则,得出 a = b,b = c,那么 a === c
这是规则所决定的,如果要像#2所说的那样:
人=吃饭+睡觉+上班+玩
猪=吃饭+睡觉
那么,人一定=猪+上班+玩,因为规则定死了。而事实上,按照常理来说,之前的人和猪的 rules 是错的。但是既然这么定了,那一定满足等价代换的替换法则。

所以,规则一定,如何 a = b,b = c,那么 a 必定等于 c
这没有什么好纠结的。楼主在这上面花时间确实是浪费了。
不管怎样,把贴结了吧。
没有必要在追加更多的回复。
RT3254 2011-10-27
  • 打赏
  • 举报
回复
[Quote=引用 52 楼 xn314318 的回复:]

引用 6 楼 caozhy 的回复:
而且你让3 = 5,不但违反传递性,而且也违反对称性
3 = 5 -> 5 = 3?

3=5 ???????? 5=?3吗?
3等于5了 那么5等于 3吗
[/Quote]
请看30楼
加载更多回复(41)
【更新至2025年】2001-2025年上市公司数字化转型年报词频统计(吴非、赵宸宇、甄红线)(300+年报词频统计) 1、时间:2001-2025年 2、来源:上市公司年报 3、参考文献:企业数字化转型与资本市场表现——来自股票流动性的经验证据(吴非) 数字化转型如何影响企业全要素生产率(赵宸宇) 知识产权行政保护与企业数字化转型(甄红线) 4、方法说明:(1)参考吴非老师的做法,对人工智能技术、大数据技术、云计算技术、区块链技术、数字技术运用五个维度76个数字化相关词频进行统计 (2)参考赵宸宇老师的做法,对数字技术应用、互联网商业模式、智能制造、现代信息系统四个维度99个数字化相关词频进行统计 (3)参考甄红线老师的做法,对技术分类、组织赋能、数字化应用等类别下139个数字化相关词频进行统计 5、指标:年份、股票代码、公司简称、行业名称、行业代码、全文-文本总长度、仅中英文-文本总长度、人工智能技术-吴、大数据技术-吴、云计算技术-吴、区块链技术-吴、数字技术运用-吴、数字技术应用-赵、互联网商业模式-赵、智能制造-赵、现代信息系统-赵、技术分类-人工智能技术-甄、技术分类-区块链技术-甄、技术分类-云计算技术-甄、技术分类-大数据技术-甄、组织赋能-人工智能技术-甄、组织赋能-云计算技术-甄、组织赋能-大数据技术-甄、组织赋能-广义数字技术-甄、数字化应用-技术创新-甄、数字化应用-流程创新-甄、数字化应用-业务创新-甄、人工智能、商业智能、图像理解、投资决策辅助系统、智能数据分析、智能机器人、机器学习、深度学习、语义搜索、生物识别技术、人脸识别、语音识别、身份验证、自动驾驶、自然语言处理、大数据、数据挖掘、文本挖掘、数据可视化、异构数据、征信、增强现实、混合现实、虚拟现实、云计算、流计算、图计算、内存计算、多方安全计算、类脑计算、绿色计算、认知计算等300+词频

111,131

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧