首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dafny反向查找图

Dafny反向查找图
EN

Stack Overflow用户
提问于 2018-05-12 01:42:48
回答 1查看 227关注 0票数 1

嗨,我有一个像map<char,int>的地图,我想做一个反向查找,也就是从一个值中找到一个键。

在Dafny (例如map.getKey(value))中,是否有任何方法可以做到这一点,而Dafny还没有文档化?

我认为一种解决方案可以是逆映射,这样我就可以将map<char,int>反转到map<int,char,然后使用反转映射上的正常查找。我不知道如何做到这一点,但已经尝试使用map table[i] | i in table :: i通过地图理解,但这是行不通的。

请帮帮我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-12 01:53:32

你可以用一个“让这样-那个”的语句来做到这一点。例如:

代码语言:javascript
复制
method Test(m: map<char,int>, val: int)
    requires exists i :: i in m && m[i] == val;
{
    var i :| i in m && m[i] == val;
    // now use i...
}

您也可以按如下方式倒置地图(但您不需要只进行一次反向查找)

代码语言:javascript
复制
function method InvertMap(m: map<char,int>): map<int,char>
{
    map b | b in m.Values :: var a :| a in m && m[a] == b; a
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50302154

复制
相关文章

相似问题

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