首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从Bool到Bool有多少不同的功能?

从Bool到Bool有多少不同的功能?
EN

Stack Overflow用户
提问于 2020-09-12 18:27:03
回答 3查看 242关注 0票数 3

由于这与编程密切相关(至少在我看来是如此),所以我在这里询问,而不是在数学政务司司长上,但是如果您认为它最适合在那里或在另一个方面,请给出您的意见。

在Bartosz Milewski的程序员范畴理论第二章的末尾,有一个问题:

BoolBool有多少不同的函数?你能全部实现吗?

这是我的推理:

  • Bool中只有两个元素:TrueFalse
  • 如果函数被认为是黑匣子,不管在其中发生了什么(例如,将两个Ints之和分别编码为arg1 + arg2arg2 + arg1的两个函数将是从IntInt的相同函数);
  • 因此,不同的函数是从两个Bool中的一个到两个Bool:中的另一个。
    1. TT
    2. TF
    3. FT
    4. FF

  • 我需要什么功能才能让那些外传场景成为可能?嗯,我想我只需要两个,例如,恒等函数,允许1和4,和否定,允许2和3。

我的推理正确吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-09-12 18:52:58

不同的函数是从两个Bool中的一个到两个Bool中的另一个。

不是的。一个函数确实将的每个值从它的域名映射到它的共同域中的一个值。您需要考虑所有可能的映射组合。为此,将该函数视为一个关系并列出它们可能是有意义的:

  • f -> ft -> f
  • f -> ft -> t
  • f -> tt -> f
  • f -> tt -> t

它们对应于以下四个功能:

  • x => f (常数假)
  • x => x (身份)
  • x => not(x) (否定)
  • x => t (常量真)
票数 4
EN

Stack Overflow用户

发布于 2020-09-12 19:34:06

你问的是编程,而不是数学或CS,这一点很重要。

在数学上,他们会告诉你有四个这样的函数,列在其他答案中。

在CS上,他们会告诉您有27:三个可能的输入of和⊥对三个可能的输出of和⊥各有一个。

在编程中,我可以告诉你,这里有十一个:

  • (T->T,F->F,⊥->⊥)恒等式
  • (T->F,F->T,⊥->⊥)
  • (T->T,F->T,⊥->T)懒惰常数真
  • (T->F,F->F,⊥->F)懒惰常数假
  • (T->T,F->T,⊥->⊥)严格常数真
  • (T->F,F->F,⊥->⊥)严格常数假
  • (T->⊥,F->F,⊥->⊥)恒等式在真上失败
  • (T->T,F->⊥,⊥->⊥)标识失败
  • (T->⊥,F->T,⊥->⊥)
  • (T->F,F->⊥,⊥->⊥)
  • (T->⊥,F->⊥,⊥->⊥)失败

(这个答案是开玩笑的:我认为,在现实中,大多数学者的CS类型要么是4,要么是11。)

票数 3
EN

Stack Overflow用户

发布于 2020-09-12 18:43:14

有四项职能:

1

假->假

真->假

2

假->假

真->真真

3.

假->真

真->假

4.

假->真

真->真真

解释

你的推理基本上是正确的。这些函数是黑匣子,我们把它们看作是值。因为输入是一个布尔值,并且有两个可能的值,所以函数可能有两个独立的值,基本上是如果2^2 =4的数字。

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

https://stackoverflow.com/questions/63863605

复制
相关文章

相似问题

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