翻转数列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的Flask框架中实现单元测试的教程
Apr 20 Python
linecache模块加载和缓存文件内容详解
Jan 11 Python
urllib和BeautifulSoup爬取维基百科的词条简单实例
Jan 17 Python
Python爬虫之网页图片抓取的方法
Jul 16 Python
python多进程控制学习小结
Oct 31 Python
树莓派与PC端在局域网内运用python实现即时通讯
Jun 22 Python
python cv2在验证码识别中应用实例解析
Dec 25 Python
解决pytorch DataLoader num_workers出现的问题
Jan 14 Python
python print 格式化输出,动态指定长度的实现
Apr 12 Python
如何利用Python 进行边缘检测
Oct 14 Python
python中二分查找法的实现方法
Dec 06 Python
OpenCV全景图像拼接的实现示例
Jun 05 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.ini 中文版
2006/10/28 PHP
七款最流行的PHP本地服务器分享
2013/02/19 PHP
zf框架的db类select查询器join链表使用示例(zend框架)
2014/03/14 PHP
php中的ini配置原理详解
2014/10/14 PHP
php基于双向循环队列实现历史记录的前进后退等功能
2015/08/08 PHP
Laravel中的chunk组块结果集处理与注意问题
2018/08/15 PHP
laravel 创建命令行命令的图文教程
2019/10/23 PHP
javascript 面向对象全新理练之数据的封装
2009/12/03 Javascript
JQuery Dialog(JS 模态窗口,可拖拽的DIV)
2010/02/07 Javascript
如何确保JavaScript的执行顺序 之实战篇
2011/03/03 Javascript
JavaScript高级程序设计(第3版)学习笔记11 内建js对象
2012/10/11 Javascript
js 左右悬浮对联广告代码示例
2014/12/12 Javascript
谈谈JavaScript自定义回调函数
2015/10/18 Javascript
JS随机洗牌算法之数组随机排序
2016/03/23 Javascript
jQuery实现Select左右复制移动内容
2016/08/05 Javascript
js替换字符串中所有指定的字符(实现代码)
2016/08/17 Javascript
vue环境搭建简单教程
2017/11/07 Javascript
vue点击标签切换选中及互相排斥操作
2020/07/17 Javascript
[01:36]DOTA2完美大师赛趣味视频之与队友相处的十万个技巧
2017/11/19 DOTA
在Django的视图中使用数据库查询的方法
2015/07/16 Python
基于python3 类的属性、方法、封装、继承实例讲解
2017/09/19 Python
小米5s微信跳一跳小程序python源码
2018/01/08 Python
如何使用Python标准库进行性能测试
2019/06/25 Python
如何通过安装HomeBrew来安装Python3
2020/12/23 Python
美国折扣网站:jClub
2017/08/07 全球购物
美国名牌香水折扣网站:Hottperfume
2021/02/10 全球购物
送货司机岗位职责
2013/12/11 职场文书
创业计划书中要认真思考的问题
2013/12/28 职场文书
11月红领巾广播稿
2014/01/17 职场文书
党员领导干部廉洁从政承诺书
2014/03/27 职场文书
学校节能减排方案
2014/06/13 职场文书
迟到检讨书2000字(精选篇)
2014/10/07 职场文书
2015年乡镇安全生产工作总结
2015/05/19 职场文书
负责培养人意见
2015/06/05 职场文书
mysql分表之后如何平滑上线详解
2021/11/01 MySQL
阿里云服务器Ubuntu 20.04上安装Odoo 15
2022/05/20 Servers