翻转数列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 相关文章推荐
django模型中的字段和model名显示为中文小技巧分享
Nov 18 Python
Python scikit-learn 做线性回归的示例代码
Nov 01 Python
Python wxPython库使用wx.ListBox创建列表框示例
Sep 03 Python
python实现顺时针打印矩阵
Mar 02 Python
使用python实现抓取腾讯视频所有电影的爬虫
Apr 15 Python
11个Python Pandas小技巧让你的工作更高效(附代码实例)
Apr 30 Python
python获取点击的坐标画图形的方法
Jul 09 Python
使用pandas读取文件的实现
Jul 31 Python
Window系统下Python如何安装OpenCV库
Mar 05 Python
python实现将两个文件夹合并至另一个文件夹(制作数据集)
Apr 03 Python
PIP和conda 更换国内安装源的方法步骤
Sep 21 Python
python 基于opencv 绘制图像轮廓
Dec 11 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正则表达式使用的详细介绍
2013/04/27 PHP
php简单操作mysql数据库的类
2015/04/16 PHP
yii2中结合gridview如何使用modal弹窗实例代码详解
2016/06/12 PHP
ThinkPHP实现更新数据实例详解(demo)
2016/06/29 PHP
在Laravel中使用DataTables插件的方法
2018/05/29 PHP
实例讲解通过​PHP创建数据库
2019/01/20 PHP
js兼容标准的表格变色效果
2008/06/28 Javascript
使用Java实现简单的server/client回显功能的方法介绍
2013/05/03 Javascript
Angular ng-class详解及实例代码
2016/09/19 Javascript
Angularjs中controller的三种写法分享
2016/09/21 Javascript
Angular JS数据的双向绑定详解及实例
2016/12/31 Javascript
Angularjs2不同组件间的通信实例代码
2017/05/06 Javascript
详解JSONObject和JSONArray区别及基本用法
2017/10/25 Javascript
async/await优雅的错误处理方法总结
2019/01/30 Javascript
通过js示例讲解时间复杂度与空间复杂度
2019/08/06 Javascript
Emberjs 通过 axios 下载文件的方法
2019/09/03 Javascript
Vue实现数据请求拦截
2019/10/23 Javascript
微信小程序12行js代码自己写个滑块功能(推荐)
2020/07/15 Javascript
Python中使用tarfile压缩、解压tar归档文件示例
2015/04/05 Python
python单例模式实例解析
2018/08/28 Python
Python爬虫 scrapy框架爬取某招聘网存入mongodb解析
2019/07/31 Python
Python多线程通信queue队列用法实例分析
2020/03/24 Python
什么是python类属性
2020/06/10 Python
Hotels.com英国:全球领先的酒店住宿提供商
2019/01/24 全球购物
ECCO俄罗斯官网:北欧丹麦鞋履及皮具品牌
2020/06/26 全球购物
如何进行有效的自我评价
2013/09/27 职场文书
后勤自我鉴定
2013/10/13 职场文书
初中同学聚会邀请函
2014/02/03 职场文书
无犯罪记录证明范本
2014/09/15 职场文书
2016年员工政治思想表现评语
2015/12/02 职场文书
火锅店的开业营销方案范本!
2019/07/05 职场文书
婚礼必备主持词范本!
2019/07/23 职场文书
解决hive中导入text文件遇到的坑
2021/04/07 Python
spring cloud 配置中心native配置方式
2021/09/25 Java/Android
Python字符串的转义字符
2022/04/07 Python
分析MySQL优化 index merge 后引起的死锁
2022/04/19 MySQL