诚实国还是说谎国,谁说假话,谁说实话

2023-11-01 22:50
文章标签 说谎 假话 诚实 说实话

本文主要是介绍诚实国还是说谎国,谁说假话,谁说实话,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我们看一个非常有意思的小问题。

题目:

城实国和说谎国,是两个截然不同的国家。诚实国的人永远说真话,说谎国的人永远说假话。

有一天,你在两个国家的交界处遇到了三个人A,B,C,你想调查一下他们分别来自哪个国家。

其中A说“我们三个人中间有两个来自诚实国”。

B说“他说的不对,我们中间只有一个城实国”。

最后C告诉你:B说的对。

请问:你该怎样分辨出他们的国籍?

如果我们不用程序模拟,很快我们就要被搞晕了。大家可能不相信,公务员考试就有很多这样的题目。令人崩溃。

但是......

作为一个学过python的程序员(媛),我们可以尝试一下 ,用python计算出这个问题。


                               代码获取

关注“python趣味爱好者”微信公众号,回复“谁在说谎”获取源代码

算法模拟

1:循环遍历

我们写程序看一看吧

我们用1表示一个人是城实国,0表示这个人来自说谎国。

我们用a,b,c三个变量来表示这三个人的国籍,比如说a=1.代表A来自诚实国。

b=0,代表B来自说谎国。

我们先初始化三个变量。

a=0
b=0
c=0

然后,我们用穷举法循环所有的可能性

代码如下

for i in range(0,2):a=ifor j in range(0,2):b=jfor k in range(0,2):c=kprint("A的国籍",a,"  B的国籍",b,"  C的国籍",c)

遍历所有可能的结果,是这样的

这样,我们就可以将所有的人的身份状态遍历一遍。一共有八种情况。

2:条件判断

在这些各种情况中,我们要找出符合三个人说的要求的图片。为此,我们专门定义了一个函数。用来判断是否符合三种要求。

def judge(a,b,c):if((a and a+b+c==2) or ((not a) and a+b+c!=2)) and ((b and a+b+c==1) or ((not b) and a+b+c!=1)) and (c and a+b+c==1) or ((not c) and a+b+c!=1):return 1else:return 0

其中a,b,c是三个形参,分别代表三个人的国籍。

然后,我们用了一个比较复杂的if判断。先假设

除此之外,我们还要定义一个函数,来判断当前的身份状态是否符合题目中的要求,也就是这三个人说的话。

大家仔细阅读一下这一行代码,这是用来描述A说的话的。

((a and a+b+c==2) or ((not a) and a+b+c!=2))

A说他们之间有两个人来自诚实国,那么如果A说的是正确的,那么他就来自诚实国,另外两个人中也有一个来自诚实国,也就是a+b+c=2。其中a=1,b,c之间有一个是1有一个是0。

如果A说的是错的,那么a=0,且a+b+c不等于2。

我们再来看B说的话,B说他们之间只有一个来自诚实国,加入B说的是正确的,那么A说的就是错的。也就是说a=0,b=1,这时候c=0.

同样的道理分析C,我们也可以看出其中的规律,我们把这些约束写在if判断里面。如果满足所有的条件,那么就返回1,否则返回0.

在循环遍历所有的情况的时候,我们调用这个函数,进行判断。

运行结果就是

有两种情况满足

第一种是:

A,B,C说的全部都是谎话,他们都来自说谎国

第二种是:

A和B来自诚实国,C来自说谎国


图片来源:

图怪兽

发表情

这篇关于诚实国还是说谎国,谁说假话,谁说实话的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/326312

相关文章

第二十五篇——信息加密:韦小宝说谎的秘诀

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么? 四、总结五、升华 一、背景介绍 加密这件事,对于这个时代的我们来说非常重要,那么要如何做到加密这件事,这篇文中就提炼出了简练的方法。 二、思路&方案 1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过

这就是传说中的能治疗说谎的果子

扫清了妖洞的吃饭 今天的扫清了妖洞的吃饭,妈心想,这就是传说中的能治疗说谎的果子,游泳可高兴了,她在吃树上最后一颗果子的时候,人们在那挑水,倍受瞩目的陶瓷女排姑娘们的辉煌之路,他们用神珠拯救了大森林,有一只小蚂蚁老爱说谎话,小蚂蚁爱说谎的坏习惯终于改正了。 如果我能让我的孩子不再说谎该多好阿,只见小猫怒眼圆睁也杀了进来,她们走得太艰难了,卫冕之路,她被一个人扔到了森林里,哦,她一看,我是树上

凡事有利有弊,如果生了一个自闭症的小孩,请说出有利的部分 :独特、专注力、诚实和直接,记忆力

生育一个自闭症小孩可能带来一些独特的优势和积极的方面,尽管也会面临许多挑战。以下是一些可能的有利方面: 独特的视角:自闭症儿童通常有独特的思维方式和视角,他们可能在某些方面比普通人更敏锐。这种独特性可以带来创新的解决方案和新颖的观点。 专注力强:许多自闭症儿童在他们感兴趣的领域表现出惊人的专注力和热情。这种专注力可以在学术研究、艺术创作或技术开发等方面带来杰出的成就。 诚实和直接:自闭症儿

说实话我只能灌水,我谈技术你们有几个懂的啊?不信?随便发一段我写的代你们有几个能看懂的啊?

说实话我只能灌水,我谈技术你们有几个懂的啊?不信?随便发一段我写的代你们有几个能看懂的啊? 视频: 刘德华中国人 藏拙贴吧视频音乐了 视频发表方法: 跟发表图片一样,只要链接是以 .swf 结尾系统就会默认为你发表的是视频了 音乐发表方法: 跟发表图片一样,只要链接是以 .mp3 或 .wma 结尾系统就会默认为你发表的是音乐了 其余的都按照图片方式进行处理 相关处理

【愚人节接龙】这些程序员最爱说的“假话”,你中了几个?

#愚人节接龙挑战# 与测试、产品的日常相处技巧都在这儿了。 话不多说,赶紧扫码!

程序猿最爱说的假话,你中枪了么?(测测你是哪种类型的谎话精)

纵横码湖这么多年, 谁还没几句“场面话”? -我以后再给代码加注释。 -这很简单,我几天就能完成。 -不可能,我本地测试通过了的。 假作真时真亦假, 真作假时假亦真。 面对隔壁产品经理张口即来的 “这个需求很简单” “这个需求很紧急” (那你叫爸爸啊) 我们总要有“保护自己”的最佳方式! 面对千姿百态的工作生活现象, 我们总要有自得其乐如(hun)鱼(shui)饮(mo)水(yu)的适应方式

半诚实模型

The Semi-Honest Model 半诚实模型 半诚实的参与方,遵循了协议的执行,但是却保存了协议的中间计算状态,实际上,半诚实的参与方,只要保存内部的掷硬币过程(产生随机数的过程)和所有从其他参与方接收到的消息就行了。特别是,一个半诚实的参与方会选择随机数和根据预定的程序进行操作,即根据预定的程序公平的产生随机数和执行输入与输出。值得注意的是,一个半诚实参与方相当于是零知识中的诚实验证

今年面试潮,说实话这个开发岗能不能冲?

自打华为 2019 年发布鸿蒙操作系统以来,网上各种声音百家争鸣。尤其是 2023 年发布会公布的鸿蒙 4.0 宣称不再支持 Android,更激烈的讨论随之而来。 当下移动端两大巨头瓜分了绝大部分市场: iOS 是闭源的,只有唯一的一家厂商:Apple。Google 开放了 Android 基础的能力,这些能力集构成了:Android Open Source Project(简称 AOSP

C abcd四人中一人说谎

1.题目 日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯 的一个。以下为4个嫌疑犯的供词。 A说:不是我。 B说:是C。 C说:是D。 D说:C在胡说 已知3个人说了真话,1个人说的是假话。 现在请根据这些信息,写一个程序来确定到底谁是凶手。 2.程序代码 #define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>

看《兰德公司对中国的评价》——做一个勇敢、忠诚、正直和诚实的中国人

兰德是美国领先的智库/思想库。应该是个保守派/右派,下面的文章写的很狠,但耐心想想是有它的道理,是对我们这一代人的一个警钟。中国不要成为一个没有灵魂的巨人。《兰德公司对中国的评价》全文请参考晃姐姐的博文:http://blog.sina.com.cn/s/blog_476bdd0a0100ggvp.html 我的家乡有一句方言:为北京人怕冷,字面上是在海南岛那个天高皇帝远的地方,管啥北京人的死