翻转数列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 多线程抓取图片效率对比
Feb 27 Python
python实现单向链表详解
Feb 08 Python
python设置值及NaN值处理方法
Jul 03 Python
python爬取cnvd漏洞库信息的实例
Feb 14 Python
python获取指定日期范围内的每一天,每个月,每季度的方法
Aug 08 Python
Django使用消息提示简单的弹出个对话框实例
Nov 15 Python
python flask中动态URL规则详解
Nov 22 Python
详解Python中的分支和循环结构
Feb 11 Python
python下载卫星云图合成gif的方法示例
Feb 18 Python
使用AJAX和Django获取数据的方法实例
Oct 25 Python
Python使用OpenCV和K-Means聚类对毕业照进行图像分割
Jun 11 Python
Django中session进行权限管理的使用
Jul 09 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中文乱码
2009/11/26 PHP
无法载入 mcrypt 扩展,请检查 PHP 配置终极解决方案
2011/07/18 PHP
php UBB 解析实现代码
2011/11/27 PHP
PHP页面间参数传递的四种方法详解
2013/06/09 PHP
CodeIgniter读写分离实现方法详解
2016/01/20 PHP
PHP对象、模式与实践之高级特性分析
2016/12/08 PHP
php中时间函数date及常用的时间计算
2017/05/12 PHP
php 使用expat方式解析xml文件操作示例
2019/11/26 PHP
js中复制行和删除行的操作实例
2013/06/25 Javascript
提取字符串中年月日的函数代码
2013/11/05 Javascript
JQuery右键菜单插件ContextMenu使用指南
2014/12/19 Javascript
JavaScript实现鼠标点击后层展开效果的方法
2015/05/13 Javascript
浅析JS原型继承与类的继承
2016/04/07 Javascript
JavaScript仿网易选项卡制作代码
2016/10/06 Javascript
js学习总结_轮播图之渐隐渐现版(实例讲解)
2017/07/17 Javascript
node使用Koa2搭建web项目的方法
2017/10/17 Javascript
jquery手机触屏滑动拼音字母城市选择器的实例代码
2017/12/11 jQuery
Vue2.0用户权限控制解决方案的示例
2018/02/10 Javascript
jQuery点击页面其他部分隐藏下拉菜单功能
2018/11/27 jQuery
Python中的MongoDB基本操作:连接、查询实例
2015/02/13 Python
解析Python中的变量、引用、拷贝和作用域的问题
2015/04/07 Python
在Django中创建URLconf相关的通用视图的方法
2015/07/20 Python
python中os和sys模块的区别与常用方法总结
2017/11/14 Python
python 定时器,轮询定时器的实例
2019/02/20 Python
Ubuntu18.04下python版本完美切换的解决方法
2019/06/14 Python
python Tcp协议发送和接收信息的例子
2019/07/22 Python
Python xlrd excel文件操作代码实例
2020/03/10 Python
Pycharm插件(Grep Console)自定义规则输出颜色日志的方法
2020/05/27 Python
Pytorch 解决自定义子Module .cuda() tensor失败的问题
2020/06/23 Python
详解python日志输出使用配置文件格式
2021/02/10 Python
银行毕业实习自我鉴定
2013/09/19 职场文书
全神贯注教学反思
2014/02/03 职场文书
优秀家长自荐材料
2014/08/26 职场文书
2015年大学学生会工作总结
2015/05/13 职场文书
2015上半年个人工作总结
2015/07/27 职场文书
总结python多进程multiprocessing的相关知识
2021/06/29 Python