这是这个问题的描述:
你有两个整数a和b.您希望找到将a转换为b所需的最短操作序列,其中每个步骤允许您添加或减去5,7或12.
例如,如果给出a = -5且b = 19,则最短路径为
-5 + 12 + 12 = 19
Run Code Online (Sandbox Code Playgroud)
如果给你1和3,那么最短的路径就是
1 + 7 - 5 = 2
Run Code Online (Sandbox Code Playgroud)
我可以考虑解决这个问题的唯一方法是使用BFS,也许还有一些修剪.我可以使用更好的算法吗?
谢谢!
最近我一直在研究一些贪婪的算法问题.我对局部最优而感到困惑.如您所知,贪婪算法由局部最优选择组成.但是,结合局部最优决策并不一定意味着全局最优,对吧?
以改变为例:使用最少数量的硬币制作15¢,如果我们有10¢,5¢和1¢硬币,那么你可以用一个10¢和一个5¢来实现.但是如果加上12美分硬币,贪婪算法就会失败,因为(1×12¢+ 3×1¢)使用的硬币多于(1×10¢+ 1×5¢).
考虑一些经典的贪婪算法,例如Huffman,Dijkstra.在我看来,这些算法是成功的,因为它们没有退化情况,这意味着局部最优步骤的组合总是等于全局最优.我理解对吗?
如果我的理解是正确的,有没有一种通用的方法来检查贪婪算法是否是最优的?
有一天,我被问到这样一个问题,两个玩家(A,B)和四个位置,每个玩家在这些位置上放“ N”或“ O”,谁先拼写“ NON”赢得了这场比赛。有策略玩家A或玩家B一定会成功吗?我对此不太熟悉,因此他在以下情况下给出了一些提示,无论A提出什么,B都会成功。
[N(A看跌期权)| _ | _ | N(B看跌期权)]
首先,A将N放置在此数组的第一个索引中,然后B将N放置在最后一个位置。然后,无论A放置在什么位置,A都会赢。
所以问题是,如果将插槽添加到7个插槽,是否有相同的策略?
[_ | _ | _ | _ | _ | _ | _]
我想过类似四个灵魂的情况,但是需要这样的前提条件。我不确定这背后是否有任何理论。
[N | _ | _ | N | _ | _ | 】
我想使用下面的脚本从 webstie 检索一些信息。使用命令行效果很好。但是,使用crontab进行调度时,会遇到“错误101”问题。我无法找出根本原因,您能帮忙提供一些建议吗?谢谢!
req = urllib2.Request(tempURL)
req.add_header('User-Agent', ua)
try:
response = urllib2.urlopen(req, timeout=10)
data = response.read()
print data
response.close()
logging.info("Successfully get information about city " + str(k))
except urllib2.URLError, e:
logging.info("Failed to crawl url " + tempURL)
Run Code Online (Sandbox Code Playgroud)
我的Python环境:
机器是redhat,安装了python 2.6.6。为了使用python2.7.4。我从网上下载了 python-2.7.4.tar 并自己构建。还将以下环境变量添加到/etc/profile
PYHOME=$The unpacked path
Run Code Online (Sandbox Code Playgroud)
这样做之后,我得到了以下信息
[]$ python --version
>>> Python 2.7.4
Run Code Online (Sandbox Code Playgroud)
然后按照谷歌搜索,我创建了一个 shell 脚本来设置 python 脚本的 ENV。这个 shell 脚本将用于 crontab 计划
#!/bin/bash
export PYHOME=$Python274_location
python my.py
Run Code Online (Sandbox Code Playgroud)
如果直接在命令行中执行“python my.py”,可以获得正确的结果。但是如果在 crontab 中调度,我总是会收到以下错误。
ERROR:root:Failed to reach server. Reason: [Errno 101] Network is …Run Code Online (Sandbox Code Playgroud) 这是我的问题.
有一个带有2N元素的未排序数组.所有这些元素都是正整数.问:如何将此数组拆分为两个N数组,并且两个数组的总和必须彼此最接近
一个直观的想法是,
但通过这种方式,我们无法确定我们是否找到了最佳方案.