首页 > 编程语言 >python算法:借书方案

python算法:借书方案

时间:2024-05-16 10:33:22浏览次数:25  
标签:count python range 算法 https print 借书 借阅 com

一,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/22/python-suan-fa-jie-shu-fang-an/
代码: https://github.com/liuhongdi/ 或 https://gitee.com/liuhongdi
说明:作者:刘宏缔 邮箱: [email protected]

二,借书方案的题目与解析

1,题目:

小明有5本新书,要借给A、B、C三位小朋友,
若每人每次只能借1本,则可以有多少种不同的借法?

2,解析:

思路:
本题属于数学中常见的排列组合问题,即求从5个数中取3个不同数的排列组合的总数,
第一个人取时有5种选择,
第二个人取时有4种选择(第一个人已选走了一本),
第三个人取时有3种选择(前两个人已选走了两本),
所以预计有5x4x3=60种分法

用程序处理时:
1,对于每个人所选书号,我们可以采用循环实现,
即从每个人可选书号(1、2、3、4、5)的范围内进行穷举。
第一个人的选择,可以用循环将其列出,即for a in range(1,6)。
同理,对于第二个人、第三个人可以用同样的方法。
2,因为一本书只能借给一个人,所以第二个人的选择会受到第一个人的限制,
最后一个人的选择会受到前两个人的限制,
即后面的选择都是在前面选择的前提下进行的,
所以需要采用循环的嵌套来解决问题。
3,因为要保证三个人所选书号各不相同,
所以需要用 “if a != b and a != c and c != b”进行判断

三,编写代码:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 # A、B、C三位小朋友,5本书,每人每次只能借一本 # 用a、b、c分别表示三人所选图书的编号 count = 0  # count表示有效借阅次数 # a表示A借阅图书的编号 for a in range(1, 6):     # b表示B借阅图书的编号     for b in range(1, 6):         # c表示C借阅图书的编号         for c in range(1, 6):             if a != b and a != c and c != b:     # 三个人借的书必须编号不同                 print(f"A:{a} B:{b} C:{c}   ", end='')                 count += 1     # 借阅方法加1                 if count % 6 == 0:    # 每6个方法打印一个换行符                     print()  # 换行 print(f"共有{count}种有效借阅方法")

运行结果:

A:1 B:2 C:3   A:1 B:2 C:4   A:1 B:2 C:5   A:1 B:3 C:2   A:1 B:3 C:4   A:1 B:3 C:5   
A:1 B:4 C:2   A:1 B:4 C:3   A:1 B:4 C:5   A:1 B:5 C:2   A:1 B:5 C:3   A:1 B:5 C:4   
A:2 B:1 C:3   A:2 B:1 C:4   A:2 B:1 C:5   A:2 B:3 C:1   A:2 B:3 C:4   A:2 B:3 C:5   
A:2 B:4 C:1   A:2 B:4 C:3   A:2 B:4 C:5   A:2 B:5 C:1   A:2 B:5 C:3   A:2 B:5 C:4   
A:3 B:1 C:2   A:3 B:1 C:4   A:3 B:1 C:5   A:3 B:2 C:1   A:3 B:2 C:4   A:3 B:2 C:5   
A:3 B:4 C:1   A:3 B:4 C:2   A:3 B:4 C:5   A:3 B:5 C:1   A:3 B:5 C:2   A:3 B:5 C:4   
A:4 B:1 C:2   A:4 B:1 C:3   A:4 B:1 C:5   A:4 B:2 C:1   A:4 B:2 C:3   A:4 B:2 C:5   
A:4 B:3 C:1   A:4 B:3 C:2   A:4 B:3 C:5   A:4 B:5 C:1   A:4 B:5 C:2   A:4 B:5 C:3   
A:5 B:1 C:2   A:5 B:1 C:3   A:5 B:1 C:4   A:5 B:2 C:1   A:5 B:2 C:3   A:5 B:2 C:4   
A:5 B:3 C:1   A:5 B:3 C:2   A:5 B:3 C:4   A:5 B:4 C:1   A:5 B:4 C:2   A:5 B:4 C:3   
共有60种有效借阅方法
 

标签:count,python,range,算法,https,print,借书,借阅,com
From: https://www.cnblogs.com/architectforest/p/18195446

相关文章

  • 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吴同学 目的 这个数据科学项目的目的是提出一种可靠的算法,以便通过光学扫描仪或类似工具,银行可以区分“真钞”和“伪造”钞票。一般来说,光学扫描仪会检测每张钞票的某些特征,并将它们发送到一个算法,......
  • 推荐一款微信公众平台Python开发神器!
    1、引言在当今数字化时代,微信公众平台成为了企业和个人连接用户的重要渠道。为了高效地管理和与用户互动,开发者需要一个强大而灵活的工具。Weixin-Python正是这样一个为微信公众平台量身打造的Python库,它以其简洁的API和丰富的功能赢得了众多开发者的青睐。本文将深入探讨......
  • python函数参数中的**kwargs
    表示传递任意参数,必须放在形参的最后本质就是一个字典在函数内部可以继续进行处理,添加参数,例如:defexample_function(**kwargs):kwargs['db']=1print(kwargs)如果函数b中的形参是指定了名字的参数,并且你将字典以**a的方式传递给该函数,那么字典中的键必须与函......
  • python多进程中嵌入多进程注意事项
    例如代码:frommultiprocessingimportPoolp1=Pool(4)s=[1,2,3,4]foriins:p1.apply_asny(某方法,args=(i))p1.close()p1.join()此时,某方法中也有一个多进程设置,这样的话就是双重多进程,只要是传入的参数之间是没有关系的,那么就没有问题。如果此时,最外层的apply_......
  • 从C#通过代码启动Python脚本没有接收到参数
    本来写的是这样:ProcessStartInfopsi=newProcessStartInfo{FileName="cmd.exe",WorkingDirectory=FrmNewProject.GetFolderPath()+"\\SolverForEXE",RedirectStanda......
  • ModbusRTU从站扫描工具 python实现
    扫描指定串口下,有哪些modbusRTU服务端[1-247]frompymodbus.clientimportModbusSerialClientasModbusClientfrompymodbus.exceptionsimportModbusIOException,ConnectionException,NoSuchSlaveExceptionimporttimedefread_holding_registers(client,slave_addres......