翻转数列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通过poll实现异步IO的方法
Jun 04 Python
Python中enumerate函数代码解析
Oct 31 Python
关于Django显示时间你应该知道的一些问题
Dec 25 Python
python中pika模块问题的深入探究
Oct 13 Python
python查找指定文件夹下所有文件并按修改时间倒序排列的方法
Oct 21 Python
Python计算库numpy进行方差/标准方差/样本标准方差/协方差的计算
Dec 28 Python
pytorch自定义初始化权重的方法
Aug 17 Python
Python三元运算与lambda表达式实例解析
Nov 30 Python
python 画3维轨迹图并进行比较的实例
Dec 06 Python
使用OpenCV实现道路车辆计数的使用方法
Jul 15 Python
Python使用正则表达式实现爬虫数据抽取
Aug 17 Python
Python安装并操作redis实现流程详解
Oct 13 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自动更新新闻DIY
2006/10/09 PHP
利用static实现表格的颜色隔行显示
2006/10/09 PHP
PHP 5.0 Pear安装方法
2006/12/06 PHP
php 面试碰到过的问题 在此做下记录
2011/06/09 PHP
php微信公众平台开发类实例
2015/04/01 PHP
不能再简单的无闪刷新验证码原理很简单
2007/11/05 Javascript
用jQuery实现检测浏览器及版本的脚本代码
2008/01/22 Javascript
Jquery刷新页面背景图片随机变换的实现方法
2013/03/15 Javascript
一款jquery特效编写的大度宽屏焦点图切换特效的实例代码
2013/08/05 Javascript
js下拉菜单语言选项简单实现
2013/09/23 Javascript
jquery ajax传递中文参数乱码问题及解决方法说明
2014/02/07 Javascript
一个html5播放视频的video控件只支持android的默认格式mp4和3gp
2014/05/08 Javascript
浅析jQuery中调用ajax方法时在不同浏览器中遇到的问题
2014/06/11 Javascript
jQuery获取选中内容及设置元素属性的方法
2014/07/09 Javascript
jQuery中Ajax的load方法详解
2015/01/14 Javascript
JavaScript DOM元素尺寸和位置
2015/04/13 Javascript
使用纯JS代码判断字符串中有多少汉字的实现方法(超简单实用)
2016/11/12 Javascript
ES6学习笔记之正则表达式和字符串正则方法分析
2017/04/25 Javascript
基于require.js的使用(实例讲解)
2017/09/07 Javascript
[原创]jquery判断元素内容是否为空的方法
2018/05/04 jQuery
探秘vue-rx 2.0(推荐)
2018/09/21 Javascript
浅谈vuex中store的命名空间
2019/11/08 Javascript
浅谈使用nodejs搭建web服务器的过程
2020/07/20 NodeJs
解决Vue router-link绑定事件不生效的问题
2020/07/22 Javascript
基于Vue中的父子传值问题解决
2020/07/27 Javascript
Python中的字典遍历备忘
2015/01/17 Python
win10下Python3.6安装、配置以及pip安装包教程
2017/10/01 Python
Python实现的redis分布式锁功能示例
2018/05/29 Python
python 对多个csv文件分别进行处理的方法
2019/01/07 Python
python 检查数据中是否有缺失值,删除缺失值的方式
2019/12/02 Python
使用PyTorch训练一个图像分类器实例
2020/01/08 Python
pycharm快捷键汇总
2020/02/14 Python
解决python3.6用cx_Oracle库连接Oracle的问题
2020/12/07 Python
市场营销个人求职信范文
2014/02/02 职场文书
纪念九一八事变83周年国旗下讲话稿
2014/09/15 职场文书
民间借贷纠纷案件代理词
2015/05/26 职场文书