首页 > 编程语言 >python算法:新郎新娘

python算法:新郎新娘

时间:2024-05-16 11:31:35浏览次数:23  
标签:结婚 新郎新娘 python com 新娘 groom 算法 print 新郎

一,for循环:

1,功能:重复执行同一段代码
语法:

for index in range(n): 
    # 循环体代码

index : 用来依次接收可迭代对象中的元素的变量名
range()函数:负责返回整数序列

流程图:

2,应用

range可以同时指定start 和stop,用for遍历并打印

1 2 3 4 # 指定 start和stop # print的参数 end=" " 用来使打印不换行 for num in range(3,9):     print(num, end=" ")

运行结果:

3 4 5 6 7 8 

说明:刘宏缔的架构森林—专注it技术的博客,
网址:https://imgtouch.com
本文: https://blog.imgtouch.com/index.php/2024/03/29/python-suan-fa-xin-lang-xin-niang/
代码: https://github.com/liuhongdi/ 或 https://gitee.com/liuhongdi
说明:作者:刘宏缔 邮箱: [email protected]

二,新郎新娘的题目与解析:

1,题目:

有三对情侣结婚,假设:
三个新郎为A、B、C,
三个新娘为X、Y、Z。
有参加婚礼的人搞不清谁和谁结婚,所以去询问了这六位新人中的三位,得到的回答为:

新郎A说他要和新娘X结婚;
新娘X说她的未婚夫是新郎C;
新郎C说他要和新娘Z结婚。

听到这样的回答后,提问者知道他们都是在开玩笑,说的都是假话,但他仍搞不清谁和谁结婚。现在请编程求出到底哪位新郎和哪位新娘结婚。

2,解析:

因为提问者得到的回答都是假话,所以:
新郎A的新娘不是X,
X的新郎不是C,
C的新娘不是Z。 一个新郎只能和一个新娘结婚,他们之间是一对一的关系

设三个变量x、y和z分别表示与新娘X、Y、Z结婚的新郎,
它们可能取值的集合是{‘A’,’B’,’C’}。
定义一个groom列表来存放三个新郎,如下:
groom = [‘A’,’B’,’C’]

根据问题分析中获得的结论,可以得出判断依据如下:

x!=’A’——新郎A的新娘不是X。
x!=’C’——与新娘X结婚的新郎不是C。
z!=’C’——C的新娘不是Z。

x!=y——与新娘X结婚的新郎不会与新娘Y结婚。
x!=z——与新娘X结婚的新郎不会与新娘Z结婚。
y!=z——与新娘Y结婚的新郎不会与新娘Z结婚。

将上面的判断依据组合起来,
找到变量x、y和z所满足的条件找到上面的条件以后,
在程序中使用三重循环来穷举x、y和z的所有取值

三,编写代码:

1 2 3 4 5 6 7 8 9 10 11 12 # 定义列表,保存三个新郎 groom = ['A', 'B', 'C'] # 穷举所有可能情况 for x in groom:     # 新娘x的匹配值     for y in groom:     # 新娘y的匹配值         for z in groom:     # 新娘z的匹配值             # 题目中的要求,同时x,y,z的取值不能重复             if (x != 'A' and x != 'C' and z != 'C' and                     x !=y and x != z and y != z):                 print("新娘X与新郎" + x + "结婚")                 print("新娘Y与新郎" + y + "结婚")                 print("新娘Z与新郎" + z + "结婚")

运行结果:

新娘X与新郎B结婚
新娘Y与新郎C结婚
新娘Z与新郎A结婚
 

标签:结婚,新郎新娘,python,com,新娘,groom,算法,print,新郎
From: https://www.cnblogs.com/architectforest/p/18195629

相关文章

  • python算法:五家共井
    一,for循环:1,功能:重复执行同一段代码语法:forindexinrange(n):   #循环体代码index:用来依次接收可迭代对象中的元素的变量名range()函数:负责返回整数序列流程图:2,应用range可以同时指定start和stop,用for遍历并打印1234#指定start和s......
  • python算法:青蛙跳台阶二
     一,认识递归函数1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止2,什么是递归函数:递归函数(recursivefunction)是指在函数体中可以调用自己的函数3......
  • python算法:读书
    一,认识递归函数1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止2,什么是递归函数:递归函数(recursivefunction)是指在函数体中可以调用自己的函数3,语......
  • python算法:公交车问题
    一,认识递归函数1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止2,什么是递归函数:递归函数(recursivefunction)是指在函数体中可以调用自己的函数3,语......
  • python算法:借书方案
    一,for循环:1,功能:重复执行同一段代码语法:forindexinrange(n):   #循环体代码index:用来依次接收可迭代对象中的元素的变量名range()函数:负责返回整数序列流程图:2,应用range可以同时指定start和stop,用for遍历并打印1234#指定start和s......
  • python算法:分糖果
    一,while循环:1,功能:重复执行同一段代码语法:while条件表达式:  #循环体当条件表达式的返回值为真时,则执行循环体中的语句,执行完毕后,重新判断条件表达式的返回值,如果表达式返回的结果为假,则退出循环体2,流程图:3,打印从1到1012345#打印从1到1......
  • python算法:平分7筐鱼
    一,for循环:1,功能:重复执行同一段代码语法:forindexinrange(n):   #循环体代码index:用来依次接收可迭代对象中的元素的变量名range()函数:负责返回整数序列流程图:2,应用range可以同时指定start和stop,用for遍历并打印1234#指定start和s......
  • 接口自动化测试框架【python+requests+pytest+excel+allure+jenkins】
    一.在整个框架中需要用到哪些东西?1.python环境安装https://www.python.org/downloads/windows/下载解压后直接安装,选择Addpythontopath2.JAVA环境配置安装包下载地址:https://www.oracle.com/java/technologies/downloads/环境变量设置参数如下:●变量名:JAVA_HOME●变......
  • python算法: 抓交通肇事犯
    一,for循环:1,功能:重复执行同一段代码语法:forindexinrange(n):   #循环体代码index:用来依次接收可迭代对象中的元素的变量名range()函数:负责返回整数序列流程图:2,应用range可以同时指定start和stop,用for遍历并打印1234#指定start和s......
  • 评估统计算法在银行伪造钞票检测中的价值
    数据科学项目 “评估统计算法在银行伪造钞票检测中的价值” by吴同学 目的 这个数据科学项目的目的是提出一种可靠的算法,以便通过光学扫描仪或类似工具,银行可以区分“真钞”和“伪造”钞票。一般来说,光学扫描仪会检测每张钞票的某些特征,并将它们发送到一个算法,......