翻转数列python实现,求前n项和,并能输出整个数列的案例


Posted in Python onMay 03, 2020

这是刷题时遇到的一道题,题目描述:小Q定义了一种数列称为翻转数列:

给定整数n和m, 满足n能被2m整除。对于一串连续递增整数数列1, 2, 3, 4..., 每隔m个符号翻转一次, 最初符号为'-';。

例如n = 8, m = 2, 数列就是: -1, -2, +3, +4, -5, -6, +7, +8.

而n = 4, m = 1, 数列就是: -1, +2, -3, + 4.

小Q现在希望你能帮他算算前n项和为多少。

如果只需求出N项和的话,这里可以有一个简便思路,观察规律哈,比如n = 8, m = 2, 数列就是: -1, -2, +3, +4, -5, -6, +7, +8.时,

思路1:

对于一次翻转前后的两个子数组, -1, -2, 和+3, +4,+3和-1的和为2,+4和-2的和为2,总和为4,同理对后面的两个子数组求和也是4,也就是说,前后两个不同符号的子数组的和刚好是M*M,那么这样的数组有多少呢,有N/2M次,所以和为M*N/2

思路2:

对于相隔m个的两个数字数字的正好为M,这样的数字对有N/2个,所以和就为M*N/2啦~~~~是不是so easy呀

好了,python实现如下,这个是把数列输出,然后再求和,另外思路2在里面有体现哦

def isInput(m,n):
  c=n/m
  d=c%2
  if d==0:
   return True
  else:
   return False
def s(m,n):
  t=int(n/m)
  an=[]
  ai=0
  for turntime in range(1,t+1):#turntime是翻转次数
   for sublen in range(0,m):#sublen是相同符号的子序列长度
     ai=ai+1
     tt=turntime%2
     if tt==0:
      an.append(ai)
     else:
      ci=ai*(-1)
      an.append(ci)
  print(an)
  print(sum(an))
  test=[]
  for a in an:
   if a<0:
     test.append(a)
  x=len(test)
  print(m*x)#这里可以直接计算出结果
m=int(input("请输入M:"))
n=int(input('请输入N:'))

if isInput(m,n)==False:
  print('输入不合法')
else:
  s(m,n)

翻转数列python实现,求前n项和,并能输出整个数列的案例

补充知识:Python Fibonacci-无穷数列 求第n项及前n项和

Fibonacci数列,又称无穷列表,前n项和为:1,1,2,3,5,8,13,21,34,55…

他可以递归地定义为:

翻转数列python实现,求前n项和,并能输出整个数列的案例

这是一个递归关系,当n大于1时,这个数列的第n项和是前两项之和。利用递归算法可以很简单地解出其解以及前n项和。

# 分段函数 F(n)= {1 n=0; 1 n=1; F(n-1)+F(-2)  n>1}
def backValue(n):
  if n<=1:
    return 1
  return backValue(n-1)+backValue(n-2)

n = int(input("输入一个大于 0 的正整数:"))
value = [i for i in range(n)]
Fbc_list = []
for i in value:
  s = backValue(i)
  Fbc_list.append(s)

print("第%s的数为:"%n,Fbc_list[-1],"\n无穷列表为:",Fbc_list,"\n前%s项和为:"%n,sum(Fbc_list))

以上这篇翻转数列python实现,求前n项和,并能输出整个数列的案例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
简单讲解Python中的字符串与字符串的输入输出
Mar 13 Python
Python中Django 后台自定义表单控件
Mar 28 Python
Python2.7基于淘宝接口获取IP地址所在地理位置的方法【测试可用】
Jun 07 Python
Python语言描述机器学习之Logistic回归算法
Dec 21 Python
详解pandas库pd.read_excel操作读取excel文件参数整理与实例
Feb 17 Python
python日志logging模块使用方法分析
May 23 Python
python内存动态分配过程详解
Jul 15 Python
解决django服务器重启端口被占用的问题
Jul 26 Python
PIL对上传到Django的图片进行处理并保存的实例
Aug 07 Python
Python SQLAlchemy入门教程(基本用法)
Nov 11 Python
python给图像加上mask,并提取mask区域实例
Jan 19 Python
python元组拆包实现方法
Feb 28 Python
Python定义函数实现累计求和操作
May 03 #Python
Python实现汇率转换操作
May 03 #Python
Python定时从Mysql提取数据存入Redis的实现
May 03 #Python
python函数调用,循环,列表复制实例
May 03 #Python
python轮询机制控制led实例
May 03 #Python
python 轮询执行某函数的2种方式
May 03 #Python
在Sublime Editor中配置Python环境的详细教程
May 03 #Python
You might like
自制PHP框架之路由与控制器
2017/05/07 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
2017/08/30 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
2018/02/07 PHP
javascript检测页面是否缩放的小例子
2013/05/16 Javascript
简介AngularJS中使用factory和service的方法
2015/06/17 Javascript
ztree实现权限横向显示功能
2017/05/20 Javascript
AugularJS从入门到实践(必看篇)
2017/07/10 Javascript
node.js中axios使用心得总结
2017/11/29 Javascript
React中的render何时执行过程
2018/04/13 Javascript
vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件
2021/02/20 Vue.js
使用Python脚本来获取Cisco设备信息的示例
2015/05/04 Python
python去除所有html标签的方法
2015/05/05 Python
关于Python中浮点数精度处理的技巧总结
2017/08/10 Python
Python 爬虫之Beautiful Soup模块使用指南
2018/07/05 Python
Python实现的对本地host127.0.0.1主机进行扫描端口功能示例
2019/02/15 Python
Django框架实现分页显示内容的方法详解
2019/05/10 Python
PyQt5 QListWidget选择多项并返回的实例
2019/06/17 Python
python 利用浏览器 Cookie 模拟登录的用户访问知乎的方法
2019/07/11 Python
解决Pycharm 导入其他文件夹源码的2种方法
2020/02/12 Python
Python实现病毒仿真器的方法示例(附demo)
2020/02/19 Python
无需压缩软件,用python帮你操作压缩包
2020/08/17 Python
Python操作dict时避免出现KeyError的几种解决方法
2020/09/20 Python
Bodum官网:咖啡和茶壶、玻璃器皿、厨房电器等
2018/08/01 全球购物
瑞士网球商店:Tennis-Point
2020/03/12 全球购物
土木工程师岗位职责
2013/11/24 职场文书
医学检验专业自荐信
2014/09/18 职场文书
淘宝文案策划岗位职责
2015/04/14 职场文书
2015年党风建设工作总结
2015/04/29 职场文书
大学生就业意向书
2015/05/11 职场文书
经济纠纷起诉状
2015/05/20 职场文书
信用卡催款律师函
2015/05/27 职场文书
小学毕业教师寄语
2019/06/21 职场文书
网络安全倡议书(3篇)
2019/09/18 职场文书
OpenCV实现反阈值二值化
2021/11/17 Java/Android
python实现学员管理系统(面向对象版)
2022/06/05 Python
Nginx开源可视化配置工具NginxConfig使用教程
2022/06/21 Servers