设K(k,n)是从密钥k开始的长度为n的唯一数的个数.然后,K(k,n 1)= sum(K(i,n)),其中i在可以从键k跳转到的键的范围内.

这可以使用动态编程有效地计算;这是一种占用O(n)时间和O(1)空间的方法:

jumpMap = [map(int, x) for x in '46,68,79,48,039,,017,26,13,24'.split(',')]

def jumps(n):

K = [1] * 10

for _ in xrange(n):

K = [sum(K[j] for j in jumpMap[i]) for i in xrange(10)]

return sum(K)

for i in xrange(10):

print i, jumps(i)

更快:可以在log(n)时间和O(1)空间中计算答案.设M是10乘10矩阵,如果可以从i跳到j,则M [i,j] = 1,否则为0.然后求和(M ^ n * ones(10,1))就是答案.可以通过在log(n)时间中求平方来使用取幂来计算矩阵功率.这是使用numpy的一些代码:

jumpMap = [map(int, x) for x in '46,68,79,48,039,,017,26,13,24'.split(',')]

M = numpy.matrix([[1 if j in jumpMap[i] else 0 for j in xrange(10)] for i in xrange(10)])

def jumps_mat(n):

return sum(M ** n * numpy.ones((10, 1)))[0,0]

for i in xrange(10):

print i, jumps_mat(i)

python优化算法_python – 优化算法相关推荐

  1. python归并算法_python归并算法

    python数据结构与算法总结 python常用的数据结构与算法就分享到此处,本月涉及数据结构与算法的内容有如下文章: <数据结构和算法对python意味着什么?> <顺序表数据结构 ...

  2. python常用代码_Python常用算法学习(3)(原理+代码)——最全总结

    1,什么是算法的时间和空间复杂度 算法(Algorithm)是指用来操作数据,解决程序问题的一组方法,对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但是在过程中消耗的资源和时间却会有很大 ...

  3. python人脸识别算法_python人脸算法

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 若图片中包含多张人脸,只选取其中人脸面积最大的人脸. 支持png.jpg.jpe ...

  4. python数字组合算法_python - 简单算法题 - 求三位数组合

    求三位数组合 lst = [3, 6, 2, 7] 这四个数字能组成多少个互不相同且无重复数字的三位数?比如362算一个,326算一个,请逐个输出他们 思路分析 从4个数里面取3个数,且不重复,然后进 ...

  5. python常用代码_Python常用算法学习(4) 数据结构(原理+代码)-最全总结

    数据结构简介 1,数据结构 数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成.简单来说,数据结构就是设计数据以何种方式组织并存贮在计算机中.比如:列表,集合与字 ...

  6. python 归并排序算法_python基本算法之实现归并排序(Merge sort)

    0.前言 评判一个算法的好坏的标准: 时间复杂度 空间复杂度 1.归并排序算法是什么? 冒泡排序(Bubble Sort)是一种建立在归并操作上面的一种有效的排序算法,由John von neuman ...

  7. python预测发展趋势_Python预测算法哪家强?权游龙妈是生还是凉凉?

    这个世界上只有两种人,看「权游」(权利的游戏)的,和不看「权游」的. 你们心心念的权游终于迎来了最终季,狼家史塔克的家训「Winter is coming」终终终终终于是应验了,人类与异鬼的战争一触即 ...

  8. python中加减乘除_Python基础算法综合:加减乘除四则运算方法

    #!usr/bin/env python # -*- coding:utf-8 -*- #python的算法加减乘除用符号:+,-,*,/来表示 #以下全是python2.x写法,3.x以上请在pyt ...

  9. 双色球python十种算法_python : 蒙特卡罗算法 应用于双色球

    参考书:算法设计与分析 王晓东 编著 :第7章 概率算法 7.5 蒙特卡罗算法 http://www.gdfc.org.cn/datas/history/twocolorball/history_1. ...

最新文章

  1. Linux下使用tee既在屏幕上显示输出,又把输出写进文件
  2. 天体摇摆仪的工作原理-测量电路中的部分电路波形
  3. codevs 1147 排座椅
  4. IDA执行python脚本文件,python编辑器的操作
  5. html5 网页弹幕,Damoo
  6. boost::fusion::as_nview用法的测试程序
  7. JDK安装及java环境配置_JDK安装及Java环境变量配置
  8. Apache Camel 2.18发布–包含内容
  9. 前端学习(2710):重读vue电商网站30之左侧菜单栏图标设计
  10. bzoj2282 [Sdoi2011]消防 直径+二分+树dp
  11. React Native与React的关系及特点
  12. Python的for循环显示每个元素的下标
  13. thinkphp的项目分组
  14. C++11中using 的使用
  15. 计算机多媒体化简笔画,计算器简笔画教程
  16. 谷歌浏览器保存网页为PDF
  17. 计算机的认识文档,对计算机专业的认识.pdf
  18. 2014年个人工作愿景
  19. HTML 表单元素的基本样式
  20. input输入框禁用苹果系统键盘的return键

热门文章

  1. Spring Batch示例教程
  2. 如何在CentOS 7上安装和使用PostgreSQL
  3. 表关联使用INNER JOIN实现更新功能
  4. 解决后台json数据返回的字段需要替换的问题
  5. UiPath实践经验总结(二)
  6. javascript Blob数据解析 HUOBI火币api数据解析
  7. java 课后习题 计算两个日期之间的天数
  8. C#LeetCode刷题之#744-寻找比目标字母大的最小字母(Find Smallest Letter Greater Than Target)
  9. 【内网渗透】找到内网关键节点
  10. freecodecamp_我在1个月内完成了整个freeCodeCamp课程(并记录了所有内容)