翻转数列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 相关文章推荐
windows系统下Python环境的搭建(Aptana Studio)
Mar 06 Python
Python实现识别手写数字 Python图片读入与处理
Mar 23 Python
详解TensorFlow在windows上安装与简单示例
Mar 05 Python
基于DataFrame改变列类型的方法
Jul 25 Python
在Pycharm中执行scrapy命令的方法
Jan 16 Python
Python变量访问权限控制详解
Jun 29 Python
python Dijkstra算法实现最短路径问题的方法
Sep 19 Python
解决Python3下map函数的显示问题
Dec 04 Python
PyTorch实现AlexNet示例
Jan 14 Python
Python3操作MongoDB增册改查等方法详解
Feb 10 Python
python实现信号时域统计特征提取代码
Feb 26 Python
Python日志器使用方法及原理解析
Sep 27 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 URL跳转代码 减少外链
2011/06/25 PHP
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL报错解决方法
2011/06/30 PHP
PHP 无限分类三种方式 非函数的递归调用!
2011/08/26 PHP
深入理解ob_flush和flush的区别(ob_flush()与flush()使用方法)
2013/02/06 PHP
PHP实现把MySQL数据库导出为.sql文件实例(仿PHPMyadmin导出功能)
2014/05/10 PHP
php中get_object_vars()方法用法实例
2015/02/08 PHP
Ubuntu彻底删除PHP7.0的方法
2018/07/27 PHP
最简单的jQuery程序 入门者学习
2009/07/09 Javascript
Extjs学习笔记之一 初识Extjs之MessageBox
2010/01/07 Javascript
parseInt parseFloat js字符串转换数字
2010/08/01 Javascript
jQuery实现感应鼠标动画效果自动伸长的输入框实例
2015/02/24 Javascript
jQuery带进度条全屏图片轮播特效代码分享
2020/06/28 Javascript
js点击文本框后才加载验证码实例代码
2015/10/20 Javascript
全面解析Bootstrap中Carousel轮播的使用方法
2016/06/13 Javascript
JS实现复选框的全选和批量删除功能
2017/04/05 Javascript
vue项目关闭eslint校验
2018/03/21 Javascript
解决angularjs service中依赖注入$scope报错的问题
2018/10/02 Javascript
发布订阅模式在vue中的实际运用实例详解
2019/06/09 Javascript
浅谈对于“不用setInterval,用setTimeout”的理解
2019/08/28 Javascript
JavaScript使用百度ECharts插件绘制饼图操作示例
2019/11/26 Javascript
详解vue-router的Import异步加载模块问题的解决方案
2020/05/13 Javascript
[01:32]2016国际邀请赛中国区预选赛IG战队首日赛后采访
2016/06/27 DOTA
Python与shell的3种交互方式介绍
2015/04/11 Python
TensorFlow变量管理详解
2018/03/10 Python
css3实现背景颜色渐变让图片不再是唯一的实现方式
2012/12/18 HTML / CSS
详解css3中的伪类before和after常见用法
2020/11/17 HTML / CSS
html5 datalist标签使用示例(自动完成组件)
2014/05/04 HTML / CSS
深入探究HTML5的History API
2015/07/09 HTML / CSS
工厂会计员职责
2014/02/06 职场文书
学习决心书范文
2014/03/11 职场文书
自行车广告词大全
2014/03/21 职场文书
2014年保洁员工作总结
2014/11/19 职场文书
电影小兵张嘎观后感
2015/06/03 职场文书
小学生优秀作文范文(六篇)
2019/07/10 职场文书
Django使用channels + websocket打造在线聊天室
2021/05/20 Python
Docker 镜像介绍以及commit相关操作
2022/04/13 Servers