翻转数列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中__str__和__repr__方法的区别
Apr 17 Python
python根据日期返回星期几的方法
Jul 06 Python
详解在Python程序中解析并修改XML内容的方法
Nov 16 Python
python操作 hbase 数据的方法
Dec 18 Python
Python错误处理操作示例
Jul 18 Python
Python 实现取矩阵的部分列,保存为一个新的矩阵方法
Nov 14 Python
python实现事件驱动
Nov 21 Python
Python字典循环添加一键多值的用法实例
Jan 20 Python
Python的互斥锁与信号量详解
Sep 12 Python
如何利用pygame实现简单的五子棋游戏
Dec 29 Python
python 解决print数组/矩阵无法完整输出的问题
Feb 19 Python
keras中模型训练class_weight,sample_weight区别说明
May 23 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中的MYSQL常用函数(php下操作数据库必备)
2010/09/12 PHP
PHP中根据IP地址判断城市实现城市切换或跳转代码
2012/09/04 PHP
php随机输出名人名言的代码
2012/10/07 PHP
fetchAll()与mysql_fetch_array()的区别详解
2013/06/05 PHP
php安装xdebug/php安装pear/phpunit详解步骤(图)
2013/12/22 PHP
php中foreach结合curl实现多线程的方法分析
2016/09/22 PHP
phpMyAdmin通过密码漏洞留后门文件
2018/11/20 PHP
PHP实现腾讯短网址生成api接口实例
2020/12/08 PHP
JQuery Tips(2) 关于$()包装集你不知道的
2009/12/14 Javascript
jquery使用ColorBox弹出图片组浏览层实例演示
2013/03/14 Javascript
angularJS 入门基础
2015/02/09 Javascript
JS获取图片高度宽度的方法分享
2015/04/17 Javascript
jQuery的中 is(':visible') 解析及用法(必看)
2017/02/12 Javascript
详解vue-cli 接口代理配置
2017/12/13 Javascript
彻底弄懂 JavaScript 执行机制
2018/10/23 Javascript
vue实现双向绑定和依赖收集遇到的坑
2018/11/29 Javascript
js笔试题-接收get请求参数
2019/06/15 Javascript
如何使用CSS3和JQuery easing 插件制作绚丽菜单
2019/06/18 jQuery
JavaScript:ES2019 的新特性(译)
2019/08/08 Javascript
对layer弹出框中icon数字参数的说明介绍
2019/09/04 Javascript
Python+django实现文件下载
2016/01/17 Python
Python批量合并有合并单元格的Excel文件详解
2018/04/05 Python
pandas 获取季度,月度,年度首尾日期的方法
2018/04/11 Python
Python装饰器基础概念与用法详解
2018/12/22 Python
如何通过python的fabric包完成代码上传部署
2019/07/29 Python
python实现的批量分析xml标签中各个类别个数功能示例
2019/12/30 Python
利用python在excel中画图的实现方法
2020/03/17 Python
罗德与泰勒百货官网:Lord & Taylor
2016/08/12 全球购物
乌克兰最大的家用电器和电子产品连锁店:Eldorado
2019/10/02 全球购物
先进工作者获奖感言
2014/02/08 职场文书
竞选大队委员演讲稿
2014/04/28 职场文书
党的群众路线教育实践活动总结报告
2014/04/28 职场文书
教师自我剖析材料范文
2014/09/30 职场文书
房地产工程部经理岗位职责
2015/04/09 职场文书
子女赡养老人协议书
2016/03/23 职场文书
详解python字符串驻留技术
2021/05/21 Python