首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >什么是在尼姆!美元(美元)操作员?

什么是在尼姆!美元(美元)操作员?
EN

Stack Overflow用户
提问于 2018-01-10 04:06:17
回答 1查看 740关注 0票数 3

Nim行动第114页上定义自定义哈希函数的示例中,!$操作符用于“最后确定计算的散列”。

代码语言:javascript
运行
AI代码解释
复制
import tables, hashes
type
  Dog = object
    name: string

proc hash(x: Dog): Hash = 
  result = x.name.hash
  result = !$result

var dogOwners = initTable[Dog, string]()
dogOwners[Dog(name: "Charlie")] = "John"

在以下段落中:

!$运算符完成计算的哈希,这在编写自定义hash过程时是必要的。使用$!运算符确保计算的散列是唯一的。

我很难理解这一点。“定案”是什么意思?在这种情况下,确保某些东西是独一无二的意味着什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-10 04:45:24

如果您不是阅读!$操作符的单一描述,而是查看哈希模块文档的开始,那么您的问题可能会得到解答。正如您可以看到的,原始数据类型有一个hash() proc,它返回自己的散列。但是,如果您有一个包含许多变量的复杂对象,您可能希望为对象本身创建一个散列,您如何做到这一点?在不使用散列理论的情况下,并将散列处理为黑匣子,您需要使用两种proc来生成有效的散列:加法/级联算子终结运算符。因此,您最终使用!&将单个散列添加(或混合)到一个时态值中,然后使用!$将该时态值确定为最终散列。如果Dog对象有一个以上的变量,则Nim in Action示例可能更容易理解,因此需要同时使用两个操作符:

代码语言:javascript
运行
AI代码解释
复制
import tables, hashes, sequtils
type
  Dog = object
    name: string
    age: int

proc hash(x: Dog): Hash =
  result = x.name.hash !& x.age.hash
  result = !$result

var dogOwners = initTable[Dog, string]()
dogOwners[Dog(name: "Charlie", age: 2)] = "John"
dogOwners[Dog(name: "Charlie", age: 5)] = "Martha"
echo toSeq(dogOwners.keys)
for key, value in dogOwners:
  echo "Key ", key.hash, " for ", key, " points at ", value

至于为什么散列值暂时连接起来,然后最后确定,这在很大程度上取决于哪些算法让Nim开发人员选择用于散列。您可以看到从源代码,哈希连接和终结主要是位移位。不幸的是,源代码没有解释或指向任何其他引用来理解为什么要这样做,以及为什么要选择这种特定的散列算法。您可以尝试向Nim论坛询问这一点,并可能通过您的发现来改进文档/源代码。

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

https://stackoverflow.com/questions/48187132

复制
相关文章
尼姆博弈(Nim Game)
简述 有若干堆石子,每堆石子的数量都是有限的,合法的移动是“选择一堆石子并拿走若干颗(不能不拿)”,如果轮到某个人的时候所有石子堆都已经被拿空了,则判负(因为他此时没有任何合法的移动) 分析 这游戏看上去有些复杂,我们先从简单情况开始研究,如果轮到你时,只剩下一堆石子,那么此时必胜策略肯定是把这堆石子全部拿完,然后对手没有石子拿就输了;如果剩下两堆不相等的石子,必胜策略是通过取多的一堆石子将两堆石子变得相等,之后对手如果在某一堆拿若干颗,你就在另一堆拿同样多的数量,直至胜利;但是如果还剩三堆,应该怎么分
mathor
2018/06/22
7510
hdu----(1849)Rabbit and Grass(简单的尼姆博弈)
Rabbit and Grass Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2145    Accepted Submission(s): 1622 Problem Description 大学时光是浪漫的,女生是浪漫的,圣诞更是浪漫的,但是Rabbit和Grass这两个大学女生在今年的圣诞节却表现得一点都不浪漫:不去逛商场,不去逛公园
Gxjun
2018/03/26
6880
hdu----(1849)Rabbit and Grass(简单的尼姆博弈)
一个傻傻的尼姆游戏及其Python实现
尼姆游戏是个著名的游戏,有很多变种玩法。两个玩家轮流从一堆物品中拿走一部分。在每一步中,玩家可以自由选择拿走多少物品,但是必须至少拿走一个并且最多只能拿走一半物品,然后轮到下一个玩家。拿走最后一个物品
Python小屋屋主
2018/04/16
1.5K0
一个傻傻的尼姆游戏及其Python实现
​1 万亿美元没了:微软蒸发 1890 亿美元、特斯拉 1990 亿美元、亚马逊 1730 亿美元、谷歌 1230 亿美元
全球最大几家科技公司的市值在短短三个交易日内就缩水超过1万亿美元。 自美联储周三上调基准利率以来,股市一片哀鸿遍野,但科技行业重受的重创比其他经济领域更大。 近年来(包括疫情这几年),IT行业在强劲牛市期间(包括疫情期间)推动了经济发展,但现在投资者们对IT行业的兴趣明显降低,正在将更多的资金投入到市场比较稳妥的领域,包括Campbell Soup、General Mills和J.M. Smucker 等传统企业股。 全球市值最高的上市公司苹果自周三收盘以来市值缩水已达2200亿美元。 当天美联储主
云头条
2022/05/12
2910
​1 万亿美元没了:微软蒸发 1890 亿美元、特斯拉 1990 亿美元、亚马逊 1730 亿美元、谷歌 1230 亿美元
使用Python编写一个聪明的尼姆游戏
关于尼姆游戏的介绍请参考上一篇文章:一个傻傻的尼姆游戏及其Python实现,本文使用Python实现一个聪明的尼姆游戏。 在聪明模式中,计算机每次拿走足够多的物品使得堆的大小是2的幂次方减1——也就是
Python小屋屋主
2018/04/16
1.9K0
使用Python编写一个聪明的尼姆游戏
漫画:脑筋急转弯题目(尼姆问题求解)
你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头。拿掉最后一块石头的人就是获胜者。你作为先手。
程序员小浩
2020/03/30
3630
漫画:脑筋急转弯题目(尼姆问题求解)
300亿美元,AMD为什么要买Xilinx?
自2015年5月,Intel(英特尔)以167亿美元收购FPGA生产商Altera后,半导体行业接连传出大整合。
AI科技大本营
2020/10/27
5520
300亿美元,AMD为什么要买Xilinx?
公平组合游戏-巴什游戏、尼姆游戏和SG函数
公平组合游戏(Impartral Combinatorial Game)是满足以下特征的一类问题:
唔仄lo咚锵
2020/10/09
1.5K0
公平组合游戏-巴什游戏、尼姆游戏和SG函数
一行代码击败 100% 用户,leetcode 尼姆问题求解
记得还是初中时期,就和同学玩过这样一个游戏。和对手轮流从一堆棋子中取走一个或者多个,最后不能再取的就是输家。
程序员小浩
2020/11/11
8050
10亿美元!100亿美元!「印度市场」火了!
路透社报道,两位消息人士称,富士康计划投资10亿美元,在印度南部扩建一家工厂,为苹果的这家台湾代工制造商装配 iPhone。
新智元
2020/07/21
5870
硅谷快意恩仇录:战斗力爆表的10对科技公司CEO之争
硅谷是科技公司的天堂,吸引最有创造力的人来此实现自己的想法。这里孕育着看似千奇百怪,但最终成为科技前沿的互联网技术。
新智元
2020/07/14
7380
硅谷快意恩仇录:战斗力爆表的10对科技公司CEO之争
hdu-------(1848)Fibonacci again and again(sg函数版的尼姆博弈)
Fibonacci again and again Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5088    Accepted Submission(s): 2126 Problem Description 任何一个大学生对菲波那契数列(Fibonacci numbers)应该都不会陌生,它是这样定义的: F(1)=1; F(2)=2;
Gxjun
2018/03/26
9800
拉姆达表达式是什么_拉姆达
通常我们会用一个类实现接口,然后构造对象作为参数传入,也可以使用匿名类,用λ表达式可以简化匿名类的编写,用例如下。
全栈程序员站长
2022/11/04
3400
拉姆达表达式是什么_拉姆达
6.6亿美元!思科又在搞什么大动作?
思科宣布将以6.6亿美元的现金和股权奖励收购加州半导体公司Luxtera。Luxtera使用硅光子技术为超大规模企业、企业数据中心和服务提供商构建集成光学功能。
SDNLAB
2018/12/28
4030
6.6亿美元!思科又在搞什么大动作?
专访 | 融资4.1亿美元,估值15亿美元,这家AI初创公司凭什么“这么贵”?
记者 | 周翔 AI 在中国到底有多热?下面的一组数字或许可以说明。 去年 12 月,旷视科技完成 1 亿美元的 C 轮融资。 今年 5 月,依图科技获得 3.8 亿元人民币的 C 轮融资。 两个月前,成立不到 3 年的商汤科技获得 4.1 亿美元的 B 轮融资,估值超过 15 亿美元。此举不仅创下全球 AI 领域单轮融资最高纪录,商汤科技也成为全球融资额最高的 AI 独角兽企业。 而以上这些,还只是计算机视觉领域的创业公司。 不管是不是虚火,在国务院印发的《新一代人工智能发展规划》 的加持下,商汤科技
AI科技大本营
2018/04/26
5950
专访 | 融资4.1亿美元,估值15亿美元,这家AI初创公司凭什么“这么贵”?
在3000美元的HoloLens上玩游戏是一种什么体验?
目前,虚拟现实头显的价格参差不齐,效果也天壤之别,有低至百元的眼镜盒子,也有高到上万的MR头显。作为头显界的玛莎拉蒂,微软的HoloLens以3000美元的售价让一些高端头显都望尘莫及。 如此高价带来
VRPinea
2018/05/14
9610
滴血验癌?37岁女版乔布斯原来是硅谷女骗子,将面临20年监禁
当地时间1月4日,美国陪审团表示,美国血液检测公司Theranos创始人伊丽莎白·霍尔姆斯(Elizabeth Holmes)面临的11项指控中,有4项罪名不成立有4项罪名成立,其中包括密谋欺诈投资者。剩下的3项罪名他们无法作出决定。
镁客网
2022/02/10
3480
滴血验癌?37岁女版乔布斯原来是硅谷女骗子,将面临20年监禁
955 亿美元的半导体市场:三星 203 亿美元、英特尔 193 亿美元、台积电 133 亿美元、海士力 92 亿美元
全球十大半导体供应商在2021年第二季度的销售额比2021年第一季度增长了10%。 IC Insights本月发布了8月版的2021年《麦克莱恩报告》(McClean Report),报告分析了2021年第二季度的25大半导体销售领导者。该研究简报主要介绍了第二季度的十大供应商。 半导体销售包括IC和光电、传感器及分立器件(O-S-D)两大品类的销售额。图1显示了2021年第二季度的十大半导体销售领导者。该名单包括总部位于美国的六家供应商、总部位于韩国的两家供应商以及总部位于台湾的两家供应商,其中包括四家无
云头条
2022/03/18
2280
HDUOJ--------A simple stone game(尼姆博弈扩展)(2008北京现场赛A题)
A simple stone game                                                                                                       Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)                                                  
Gxjun
2018/03/22
6190
HDUOJ--------A simple stone game(尼姆博弈扩展)(2008北京现场赛A题)
点击加载更多

相似问题

美元符号(美元)(美元)

11

在Java中括号是做什么的:美元=(美元)对象;

30

Eclipse的美元跌落是美元评论的标准吗?

26

在PHP中,$$ (美元或双美元)是什么意思?

6144

在尼尼姆中,什么是等效的MEF CreationPolicy.NonShared?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文