翻转数列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 相关文章推荐
分享15个最受欢迎的Python开源框架
Jul 13 Python
Python实现删除Android工程中的冗余字符串
Jan 19 Python
Python复制目录结构脚本代码分享
Mar 06 Python
python复制与引用用法分析
Apr 08 Python
Django中URLconf和include()的协同工作方法
Jul 20 Python
关于python2 csv写入空白行的问题
Jun 22 Python
Python一行代码解决矩阵旋转的问题
Nov 30 Python
Python对wav文件的重采样实例
Feb 25 Python
使用Python-OpenCV消除图像中孤立的小区域操作
Jul 05 Python
pytest配置文件pytest.ini的详细使用
Apr 17 Python
Python基础之常用库常用方法整理
Apr 30 Python
Python游戏开发实例之graphics实现AI五子棋
Nov 01 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调用时间格式的参数详解
2013/06/06 PHP
js 页面传参数时 参数值含特殊字符的问题
2009/12/13 Javascript
javascript在myeclipse中报错的解决方法
2013/10/29 Javascript
js面向对象之公有、私有、静态属性和方法详解
2015/04/17 Javascript
JS实现的通用表单验证插件完整实例
2015/08/20 Javascript
js实现n秒倒计时后才可以点击的效果
2015/12/20 Javascript
JQuery遍历元素的父辈和祖先的方法
2016/09/18 Javascript
JavaScript &amp; jQuery完美判断图片是否加载完毕
2017/01/08 Javascript
nodejs+express实现文件上传下载管理网站
2017/03/15 NodeJs
JS对象深度克隆实例分析
2017/03/16 Javascript
[js高手之路]图解javascript的原型(prototype)对象,原型链实例
2017/08/28 Javascript
详解vue指令与$nextTick 操作DOM的不同之处
2018/08/02 Javascript
Vue中强制组件重新渲染的正确方法
2021/01/03 Vue.js
[04:30]显微镜下的DOTA2第五期——拉比克
2013/09/26 DOTA
Python魔术方法详解
2015/02/14 Python
python在控制台输出进度条的方法
2015/06/20 Python
python实现BackPropagation算法
2017/12/14 Python
python操作excel的方法(xlsxwriter包的使用)
2018/06/11 Python
解决python中遇到字典里key值为None的情况,取不出来的问题
2018/10/17 Python
python 递归深度优先搜索与广度优先搜索算法模拟实现
2018/10/22 Python
Python嵌套函数,作用域与偏函数用法实例分析
2019/12/26 Python
将tensorflow模型打包成PB文件及PB文件读取方式
2020/01/23 Python
使用python3 实现插入数据到mysql
2020/03/02 Python
Anaconda的安装及其环境变量的配置详解
2020/04/22 Python
深入浅析HTML5中的SVG
2015/11/27 HTML / CSS
html5超简单的localStorage实现记住密码的功能实现
2017/09/07 HTML / CSS
微软中国官方商城:Microsoft Store中国
2018/10/12 全球购物
一套英文Java笔试题面试题
2016/04/21 面试题
优秀研究生自我鉴定
2013/12/04 职场文书
给领导的检讨书
2014/02/16 职场文书
制药工程专业职业生涯规划范文
2014/03/10 职场文书
探亲假请假条
2014/04/11 职场文书
委托书怎样写
2014/08/30 职场文书
2014年国庆节庆祝建国65周年比赛演讲稿
2014/09/21 职场文书
美容院合作经营协议书
2014/10/10 职场文书
社团招新宣传语
2015/07/13 职场文书