描述

Given u0 = 1, u1 = 2 and the relation 6unun+1-5unun+2+un+1un+2 = 0 calculate un for any integer n >= 0.
#Examples
fcn(n) returns un: fcn(17) -> 131072, fcn(21) -> 2097152
Remark: You can take two points of view to do this kata:
the first one purely algorithmic from the definition of un
the second one - not at all mandatory, but as a complement - is to get a bit your head around and find which sequence is hidden behind un.

分析

方法1:根据6*un∗un+1−5∗un∗un+2+un+1∗un+2=0u_n*u_{n+1}-5*u_n*u_{n+2}+u_{n+1}*u_{n+2}=0un​∗un+1​−5∗un​∗un+2​+un+1​∗un+2​=0 得到:un+2=6∗un∗un+1/(5∗un−un+1)u_{n+2}=6*u_n*u_{n+1}/(5*u_n-u_{n+1})un+2​=6∗un​∗un+1​/(5∗un​−un+1​)。递推求解即可。
方法2:观察结果序列:u0=1,u1=2,u2=4,u3=8u_0=1,u_1=2, u_2=4, u_3=8u0​=1,u1​=2,u2​=4,u3​=8……得到:un=2nu_n=2^nun​=2n

实现

方法1:

func Fct(n uint) uint {var a, b float64 = 1, 2 // NOTE 1var i uint = 2for ; i <= n; i++ {a, b = b, 6 * a * b / (5 * a - b)}return uint(b)
}

注1:此处必须将运算数转换为浮点型,否则当n比较大时,乘法运算会发生溢出。

方法2:

func Fct(n uint) uint {return 1 << n
}

Go语言实现A disguised sequence (I)相关推荐

  1. C语言中side的用法,C语言 side effect和sequence point

    C 语言中反作用(side effect):是指对数据对象或者文件的修改.例如,语句 var = 99; 的反作用是把 var 的值修改为 99.对表达式求值也可能产生反作用,例如,对表达式求se = ...

  2. Codewar-006: A disguised sequence (I)

    2019独角兽企业重金招聘Python工程师标准>>> 来源: https://www.codewars.com/kata/563f0c54a22b9345bf000053/trai ...

  3. C语言伪随机序列生成函数Pseudo-random sequence generation functions

    C语言标准ISO/IEC 9899中的说明: 1. The rand function Synopsis #include<stdlib.h> int rand(void); Descri ...

  4. xmlstreamexception 参数实体未进行声明_命名实体识别研究进展概述

    Future丨Intelligence丨Nutrition丨Energy 让阅读成为习惯,让灵魂拥有温度 点击关注PKUFineLab  一起进步 命名实体识别研究进展概述 命名实体识别任务旨在从自然 ...

  5. 人工机器:人工智能中的机器学习方法

    人工智能的定义为基于表观的行为定义,即图灵测试,可以形式化为模式识别.智能从知识论的角度分析,归纳明确知识规则构建知识图谱系统形成专家系统,而通过数据获得归纳规则约束参数为机器学习系统,即基于数据的模 ...

  6. 05.序列模型 W3.序列模型和注意力机制

    文章目录 1. 基础模型 2. 选择最可能的句子 3. 集束搜索(Beam Search) 4. 改进集束搜索 5. 集束搜索的误差分析 6. Bleu 得分 7. 注意力模型直观理解 8. 注意力模 ...

  7. 程序设计、数据结构、编译相关图灵奖得主简介之二

    7. 肯尼思 · 艾弗森(Kenneth Eugene lverson) 1979年度的图灵奖首次授予一位加拿大学者.时在IBM公司沃森研究中心工作的肯尼思·艾弗森.他是因为在开发交互式程序设计语言A ...

  8. Pascal之父——Nicklaus Wirth——算法+数据结构=程序

    凡是学过一点计算机知识的人大概都知道"数据结构+算法= 程序"这一著名公式.提出这一公式并以此作为其一本专著的书名的瑞士计算机科学家尼克劳斯·沃思(Niklaus Wirth)由于 ...

  9. markdown 绘制流程图、时序图、甘特图

    这些复杂图形的绘制都是使用代码块实现的,指定代码块的解析语言,按照响应的绘制语法即可实现. 流程图--指定 mermaid(样式流程图) 或 flow (标准流程图)解析语言 时序图--指定 sequ ...

最新文章

  1. SQL Server 2012笔记分享-48:备份时间线
  2. lambda expressions are not supported at this language level
  3. 为啥阿里巴巴规定要在 @Transactional 指定 rollbackFor?
  4. processing python模式_python学习Processing
  5. 网络通信-1(InetAddress、UDP、TCP、DatagramPacket、DatagramSocket、UDP通信示例)
  6. css cursor 的可选值(鼠标的各种样式)
  7. 管理学定律--彼得原理
  8. mergesort_Mergesort算法的功能方法
  9. 【Python】Python中内置的%操作符
  10. 【2017年第1期】手机基站定位数据可视分析
  11. Delphi ListView基本用法大全
  12. 远程连接Linux密码特殊字符,[转载]linux shell 命令_特殊字符
  13. Fiddler 教程
  14. 学校计算机机房维护年度总结,学校计算机机房的管理和维护建议原稿(全文完整版)...
  15. 操作系统:动态分区存储(首次适应算法、最佳适应算法)
  16. 5G网速比4G快那么多,是否意味着4G即将淘汰?
  17. 从简单工厂到抽象工厂
  18. ie11对html5支持度,html5最新浏览器支持程度比较
  19. 医疗器械标准目录 第二部分专业技术领域(2)
  20. cocos2d-x 横板游戏触屏人物和背景移动 方法1

热门文章

  1. FasterRCNN目标检测算法
  2. List对象集合属性处理
  3. 使用Office2003 VBA制作有倒计时功能的PPT
  4. STM32循迹小车系列教程(三)—— 使用灰度传感器循迹
  5. 解决ping邮箱服务器域名,提示找不到主机域名的问题
  6. Android智能平板应用,界面适配的另一种轻量级方法
  7. 暗夜精灵6-ubuntu18.04-显卡驱动
  8. 利用sudo获取管理员权限
  9. visual studio2017许可证过期,只有退出visual studio选项
  10. 自己做量化交易软件(21)通达信自选股文件的读写程序