用python的生成器yield轻松解决8皇后的问题以及斐波拉契数列
来源:互联网 发布:安装美工刀片的圆规 编辑:程序博客网 时间:2024/06/07 05:31
def conflict(state, nextX): nextY = len(state) for i in range(nextY): if abs(state[i] - nextX) in (0, nextY - i): return True return Falsedef queens(num=8, state=()): for pos in range(num): if not conflict(state, pos): if len(state) == num -1: yield (pos, ) else: for result in queens(num, state+(pos,)): yield (pos,) + resultprint(list(queens(8)))print(len(list(queens(8))))
# 不使用生成器def fib1(max): res = [] n, a, b = 0, 0, 1 while n < max: res.append(a + b) a, b = b, a + b n += 1 return res# 使用生成器def fib2(max): n, a, b = 0, 0, 1 while n < max: yield b a, b = b, a + b n += 1f1 = fib1(5)print(f1)for i in fib2(10): print(i)
阅读全文
0 0
- 用python的生成器yield轻松解决8皇后的问题以及斐波拉契数列
- 利用python的生成器解决八皇后问题
- Python生成器:yield的使用
- 【Python】【yield】生成器的使用
- 使用Python生成器解决八皇后问题
- Python中的生成器在八皇后问题上的应用
- 八皇后问题:基于python生成器的迭代实现
- python的迭代器、生成器、yield理解
- 详解Python中yield生成器的用法
- Python yield生成器的send方法考察
- 详解Python中yield生成器的用法
- python--生成器:yield的表达式形式,send
- python yield(生成器)的简单使用
- Python 解决 8 皇后问题
- python的生成器的应用yield--杨辉三角。
- 提高你的Python: 解释‘yield’和‘Generators(生成器)
- 提高你的Python: 解释‘yield’和‘Generators(生成器)’
- 关于Python生成器(Generator的yield、next、send)
- 单例模式(Singleton pattern)
- Python_lesson 1_setup python
- hdu 5949 Relative atomic mass
- Cloudopt通过MySSL A+级评定
- OpenCV3_C++_Equalize()灰度平滑化 实例
- 用python的生成器yield轻松解决8皇后的问题以及斐波拉契数列
- 【面向JS--this】
- Unity网络通讯的一些理解——弱联网http
- 一文弄懂神经网络中的反向传播法——BackPropagation
- 哈夫曼编码
- 例题6-12 UVA572 Oil Deposits 基础dfs求连通块
- hdu 5948 Thickest Burger
- C++巧妙程序
- OpenCV3_C++_Threshold()阈值化处理 实例