翻转数列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获取beautifulphoto随机某图片代码实例
Dec 18 Python
pyside写ui界面入门示例
Jan 22 Python
Python中标准模块importlib详解
Apr 16 Python
python实现批量修改文件名代码
Sep 10 Python
Python实现的选择排序算法示例
Nov 29 Python
Python实现的多进程和多线程功能示例
May 29 Python
Python实现获取汉字偏旁部首的方法示例【测试可用】
Dec 18 Python
Python实现的银行系统模拟程序完整案例
Apr 12 Python
用python给自己做一款小说阅读器过程详解
Jul 11 Python
Python使用字典实现的简单记事本功能示例
Aug 15 Python
Python中使用socks5设置全局代理的方法示例
Apr 15 Python
django 模版关闭转义方式
May 14 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
《魔兽争霸3》重制版究竟重制了什么?玩家:这么糊弄真的好吗?
2020/05/04 魔兽争霸
PHP4之真OO
2006/10/09 PHP
PHP操作xml代码
2010/06/17 PHP
php array的学习笔记
2012/05/16 PHP
PHP利用REFERER根居访问来地址进行页面跳转
2013/09/28 PHP
php实现utf-8转unicode函数分享
2015/01/06 PHP
javascript 24小时弹出一次的代码(利用cookies)
2009/09/03 Javascript
js 判断脚本加载完毕的代码
2011/07/13 Javascript
ExtJS DOM元素操作经验分享
2013/08/28 Javascript
js/jquery去掉空格,回车,换行示例代码
2013/11/05 Javascript
JavaScript 学习笔记之操作符(续)
2015/01/14 Javascript
详细解密jsonp跨域请求
2015/04/15 Javascript
每天一篇javascript学习小结(基础知识)
2015/11/10 Javascript
JS实现将Asp.Net的DateTime Json类型转换为标准时间的方法
2016/08/02 Javascript
详细谈谈AngularJS的子级作用域问题
2016/09/05 Javascript
微信小程序之picker日期和时间选择器
2017/02/09 Javascript
Angular如何引入第三方库的方法详解
2017/07/13 Javascript
nodejs超出最大的调用栈错误问题
2017/12/27 NodeJs
JavaScript实现简单的文本逐字打印效果示例
2018/04/12 Javascript
详解Angular-ui-BootStrap组件的解释以及使用
2018/07/13 Javascript
vue实现动态显示与隐藏底部导航的方法分析
2019/02/11 Javascript
JavaScript设计模式--桥梁模式引入操作实例分析
2020/05/23 Javascript
基于vue和bootstrap实现简单留言板功能
2020/05/30 Javascript
代码块高亮可复制显示js插件highlight.js+clipboard.js整合
2021/02/15 Javascript
python发腾讯微博代码分享
2014/01/10 Python
一步步解析Python斗牛游戏的概率
2016/02/12 Python
Python使用struct处理二进制的实例详解
2017/09/11 Python
python3+PyQt5+Qt Designer实现扩展对话框
2018/04/20 Python
弄懂这56个Python使用技巧(轻松掌握Python高效开发)
2019/09/18 Python
投资合作协议书
2014/04/17 职场文书
英文演讲稿
2014/05/15 职场文书
《改造我们的学习》心得体会
2014/11/07 职场文书
活动总结书怎么写
2015/05/11 职场文书
卡特教练观后感
2015/06/08 职场文书
教师节祝酒词
2015/08/11 职场文书
Python+Pillow+Pytesseract实现验证码识别
2022/05/11 Python