python数字游戏,让你欲罢不能

梦幻python 2021-11-25 17:24:40
Python 游戏 不能 数字 欲罢不能

今天的开胃菜,让我们来模拟一个酒桌上的数字游戏——拍七:从1到100轮流报数,每逢含有7和7的倍数的人要拍一下手。

实现起来相当简单,会打字的人都会写。

for i in range(1,101):
if i%7==0 or '7' in str(i):
print('pass')
else:
print(i)

接下来,我们来模拟一次猜数字游戏,不过猜数的人不是我们,而是用折半查找的思想,看看多少次能猜对。我们知道,二分查找的最大次数是log(N),即int(log(N))+1,以N=300为例,最多为6次,。

import random
secret = random.randint(1,300)
high = 300
low=0
count=0
while 1:
guess = int((low+high)/2)
count+=1
if guess>secret:
high=guess
elif guess<secret:
low=guess
elif guess == secret:
print('这个数字是:',guess)
print('猜了几次:',count)
break

最后,稍微提高一点难度,让我们求解九宫格(众所周知,三阶幻方的解法有8个)。

首先,我们用itertools模块里的permutations函数获得1-9中任取三个数的全排列;

接下来用三层循环和条件语句,暴力找到所有符合条件的组合:其中行或列的和是15,只要两行的和为15,剩下一行自然也是15,所以我们可以只写两个;

最后过滤掉重复矩阵:把第一行和第二行都放到集合里面,若断他们的交集长度为0,则表示他们没有交集;同理,定下两行自然也能定下第三行,所以不用再写。最后,如果你的时间不是很紧张,并且又想快速的python提高,最重要的是不怕吃苦,建议你可以价位(同音):762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~

下面是代码:

import itertools
import numpy as np
nums=[p for p in itertools.permutations(range(1,10),3) if sum(p)==15] #在全排列中取出所有和为15的组合
for row1_1,row1_2,row1_3 in nums:
for row2_1, row2_2, row2_3 in nums:
for row3_1, row3_2, row3_3 in nums:
if row1_1+row1_2+row1_3==15 \
and row2_1+row2_2+row2_3==15 \
and row1_1+row2_1+row3_1==15 \
and row1_2+row2_2+row3_2==15 \
and row1_1+row2_2+row3_3==15 \
and row1_3+row2_2+row3_1==15:
row1=row1_1,row1_2,row1_3
row2=row2_1,row2_2,row2_3
row3=row3_1,row3_2,row3_3
if len(set(row1)&set(row2))== 0:
matrix=[row1,row2,row3]
print(matrix)

image

p=list(p for p in itertools.permutations(range(1,10),9) if sum([p[0],p[1],p[2]])==sum([p[3],p[4],p[5]])==15 \
and sum([p[0],p[3],p[6]])==sum([p[1],p[4],p[7]])==15 and sum([p[0],p[8]])==sum([p[2],p[6]]))
#print(p)

我们注意到最后一个判断条件是sum([p[0],p[8]])==sum([p[2],p[6]]),其实这也是对角线和为15的变体。在行、列都确定以后,让对角线端点的和相等,中心点的数值自然也定下来了。

但是,这条语句的运行时间是上段代码的5倍!其实两段程序的判断条件是一样的,区别就在于前一段代码先求的是1-9中任取三个数,这个过程要比求1-9的全排列快很多,也少很多(C(3,9)和9!),因此后面循环体的时间复杂度中的基数N远远小于1-9的全排列个数。

image

福利:私信回复【01】可免费获取python入门教程视频

版权声明
本文为[梦幻python]所创,转载请带上原文链接,感谢
https://blog.csdn.net/zihong525/article/details/121542401

  1. Debugging mm32f3277 from zhufei, transplanted with micro Python development board
  2. Recognizing numbers using OpenCV and python
  3. 真的太香了,Python速查表终于出中文版了
  4. Django REST Framework(DRF)教程:快速入门
  5. python django objects filter过滤查询:startswith year
  6. Data encapsulation of Excel test cases in Python
  7. 学员管理系统python
  8. 肝了一夜,8000字概括精髓,pandas必知必会50例!
  9. Python竟然可以画漫画!漫画版的故宫导游图,来袭!
  10. Networkx graph theory Dijkstra algorithm shortest path implementation, Python
  11. Draw a HelloWorld with Python turtle Library
  12. 运行django的服务器内存使用偶尔跳高一点,重启服务马上下来,是内存泄露吧
  13. Basic usage of Python tqdm module in machine learning training
  14. Python -- basic usage method and basic template of argparse module
  15. python-sockertserver并发编程思想
  16. Programmation simultanée du serveur de sockets Python
  17. Vue+Django 旅游网项目 首页前端实现
  18. [learning notes] Python - pyecarts
  19. Python automated operation and maintenance -- actual combat (I)
  20. Classic usage of pandas: iloc and LOC of data filtering
  21. Python 多分支语句的三种结构
  22. Calendar module of Python time series
  23. Python 输出指定范围的闰年
  24. A super easy to use Python standard library. It's great to operate directories and files
  25. Fatal Python error: init_ fs_ encoding: failed to get the Python codec of the filesystem encoding
  26. Using Python to obtain a video address is as simple as
  27. #yyds干货盘点# 6. Python 元组,不可变的列表,滚雪球学 Python
  28. Yyds Dry Inventory # 6. Python tuples, invariant List, snowball Learning Python
  29. You cannot enter the registration page using Django registration redux
  30. 笨办法学Python第十八天:更多文件操作
  31. Python编辑代码,帮个忙呗
  32. pandas转换object为int失败了,有人能解答吗
  33. python解释题,解释这串,所代表的意思
  34. 用python用while语句写1000以内能被5和9整除的数和个数
  35. #python 我写了一个“饭店”程序
  36. Comprehensive application of Python foundation -- Development
  37. Écrivez en python le nombre et le nombre d'entiers qui peuvent être divisés par 5 et 9 jusqu'à 1000 dans une instruction while
  38. python3.7 FileNotFoundError: [WinError 2] 系统找不到指定的文件。
  39. 最全面的Python重点知识汇总
  40. You can learn Python articles without reading online classes (day 4)
  41. You can learn Python articles without reading online classes (the third day)
  42. python中 我想爬取一个网页,我在cmd中pip list中已经把requests 以及bs4 弄好了 但是他还是提示我没有那个模块
  43. You can learn Python articles without reading online classes (the next day)
  44. You can learn Python articles without reading online classes (the first day)
  45. 在Python和Go项目之后使用Rust的经验分享 - scaleway
  46. 使用PyO3从Python调用 Rust:加速Python
  47. Python 3.7 filenotfounderror: [winerror 2] le système n'a pas pu trouver le fichier spécifié.
  48. Python 一切皆对象
  49. 【Pandas学习笔记01】强大的分析结构化数据的工具集
  50. 求各位亲们可以解答一下嘛,为什么跑不出来呀,大学Python
  51. 【Pandas学习笔记01】强大的分析结构化数据的工具集
  52. python飞机大战如何让飞机始终在界面中,不能跑出界面
  53. Python代码阅读(第63篇):数字奇偶性
  54. python建立⼀個圖形介⾯應⽤(GUI app)
  55. python接口自动化的html格式报告以邮件形式发送展示的原文很丑怎么处理
  56. 针对初学者,我建议你学这 3 个 Python AutoEDA 工具包
  57. #yyds干货盘点#Python-爬虫_urlib一个类型和六个方法
  58. Pour les débutants, je vous recommande d'apprendre ces 3 kits autoeda Python
  59. 我想问python怎么入门嘞?求各路人士
  60. Summary of today's Django lessons: data reverse query triggers error field 'score_ jieshoufankui‘ expected a number but got ‘‘-20211109