是否有一种直接的方法只使用按位运算从2的幂提取指数?
编辑:虽然这个问题最初是关于按位操作的,但如果你想知道" 在Python中给出Y = 2 X时找到X的最快方法是什么,这个线程也很好读"**
我目前试图优化的例程(拉宾-米勒素性测试),以降低一个偶数 N的形式2**s * d.我可以得到这个2**s部分:
two_power_s = N & -N
Run Code Online (Sandbox Code Playgroud)
但我找不到用逐位运算来提取" s " 的方法.我目前正在测试的解决方法没有太多满足(它们都非常慢)是:
我正在使用python,但我认为这个问题的答案应该是语言无关的.
注意:这个问题被标记为语言无关和python,因为我主要关心的是找到实现问题解决方案的算法,但有关如何在python中有效实现它(=快速执行!)的信息是一个加号.
游戏规则:
An)和一个B代理(Bn).Sn).问题:
我试图找到一个高效的方式来计算可能的最佳移动为A代理商,其中"最佳移动"意味着要么最大化或最小化占用的球队住在同一插槽的机会B.团队的行动B事先不知道.
示例场景:
这种情况故意是微不足道的.它只是为了说明游戏机制.
A1 can occupy S1, S2
A2 can occupy S2, S3
B1 can occupy S1, S2
Run Code Online (Sandbox Code Playgroud)
在这种情况下,解决方案是显而易见的:A1 ? S1并且A2 ? S2是保证满足B1[ B1无法避免占用任何一个S1或S2]的选项,A2 ? S3而且A1 ? …
这个问题涉及谷歌赞助的人工智能挑战赛,这是一个每隔几个月发生一次的比赛,其中竞争者需要提交一个能够自主地与其他机器人玩家玩游戏的机器人.刚关闭的比赛被称为"蚂蚁" ,如果您有兴趣,可以在这里阅读所有规格.
我的问题是针对蚂蚁的一个方面:战斗策略.
给定一个离散坐标网格[就像一个棋盘],并给出每个玩家有一些蚂蚁,每个转弯可以:
......如果一只敌人的蚂蚁被蚂蚁包围的敌人少于(或相同)自己的敌人,那么一只蚂蚁就会被敌人的蚂蚁杀死[相当于:"如果一个敌人在范围被更多(或相同)的敌人包围而不是其目标"]
一个直观的例子:

在这种情况下,黄色的蚂蚁将向西移动,橙色的蚂蚁,无法移动[蓝色瓷砖阻挡]将有两个黄色蚂蚁"在范围内"并将死亡(如果解释仍然不清楚,我邀请您访问上面的链接,查看更多示例并解释方案).
我的问题主要是关于复杂性.我对这个问题进行了广泛的思考,但我仍然无法想出一个可以接受的方法来在合理的时间内计算出最佳的动作组合.在我看来,对于找到最佳的可能设置为我的蚂蚁的动作,我应该评估每一个可能的场景的结果,但由于战斗可以用蚂蚁会相当拥挤,这将意味着计算时间将成倍增长(5^n,其中n是蚂蚁的数量).
这种方法的另一个限制是,正在处理的解决方案并没有与计算所花费的时间成比例地提高其有效性,因此任意中断其执行可能会给您留下不可接受的解决方案.
我怀疑通过一些几何考虑结合线性代数可以找到一个好的解决方案,(也许可以为蚂蚁群计算一些"重心"?)但是我无法通过这个"直觉"的水平......
所以,我的问题归结为:
如何在现代机器上以约50-100毫秒的计算时间找到[近似]最优解的问题(这个数字是由官方竞赛规则得出的)?
如果您对这个问题感兴趣并需要一些灵感,我强烈建议您观看一些可用的游戏回放.
首先 - 这并不意味着'这是一个更好,无知的非离子战争线'...而是,我通常需要帮助做出一个架构决定/论证提出给我的老板.
跳过细节 - 我只是很想知道并找到任何已经完成Shell与[插入通用编程语言(解释))性能比较的人的结果,例如C#或Java ......
令人惊讶的是,我花了一些时间在谷歌搜索这里找不到任何这些数据.有没有人在不同的用例中做过这些比较; 点击一个数据库就像在一个XYX#循环中执行不同类型的SQL(Oracle pref,但MSSQL会这样做)查询,例如任何CRUD操作 - 并且也没有命中数据库而只是常规的50k循环类型比较进行不同类型的计算和那种性质的东西?
特别是 - 就目前而言,我需要比较从shell脚本命中Oracle DB,比如说C#(同样,任何被解释的GPPL都可以,甚至像Python这样的更高级别的GPPL).但我还需要了解标准编程计算/指令/等...
在你问'为什么不自己写一个快速测试之前?答案是:我一直是Windows开发人员,我的整个生活/职业生涯,对Shell脚本的知识非常有限 - 更不用说*nix作为一个整体....所以从这里有经验丰富的人提问的问题就是因为我们处于接近普遍的最后期限紧缩状态,因此它是有益的,更不用说节省时间了;).
我想使用php标头('Location:newpage.php')来重定向.
我没有收到任何错误,但是Jquery mobile似乎无法加载目标页面,地址栏仍然保留旧地址.
你有建议吗?
谢谢!
我是django的新手,作为一款学习应用,我正在建立一个费用记录应用程序.
在我的模型中,我有三个看起来像这样的类(为简洁起见,我稍微简化了一下):
class AbstractExpense(models.Model):
description = models.CharField(max_length=100)
amount = models.IntegerField()
category = models.ForeignKey('Category')
tags = models.ManyToManyField('Tag')
insert_date = models.DateTimeField(auto_now=True)
class Meta(object):
abstract = True
class Expense(AbstractExpense):
date = models.DateField('Date')
class RecurringExpense(AbstractExpense):
FREQUENCY_CHOICES = (('D', 'daily'),
('W', 'weekly'),
('M', 'monthly'),
('Y', 'yearly'))
start_date = models.DateField(blank=False)
end_date = models.DateField(blank=True, null=True)
last_check = models.DateField(blank=True, null=True)
frequency = models.CharField(blank=False, max_length=1, choices=FREQUENCY_CHOICES)
Run Code Online (Sandbox Code Playgroud)
RecurringExpense只是一个模板:当系统意识到插入经常性费用的时间(例如:租金)时,它应该获取模板中的信息并将其复制到Expense类的新实例中.以下是RecurringExpense负责该工作的方法的相关部分:
Expense(description=self.description,
amount=self.amount,
category=self.category,
# tags=self.tags,
date=expense_date).save()
Run Code Online (Sandbox Code Playgroud)
以上工作完美无瑕,但如果我取消注释该tags=self.tags行,django会抱怨并抛出以下错误:
Exception Type: TypeError
Exception Value: 'tags' is an …Run Code Online (Sandbox Code Playgroud) 有没有人可以提供如何通过涉及css伪类的已知Selenium问题的ac#示例:hover?
基本上,我正在为一个网站启动与selenium IDE(并在Visual Studio 2008中构建我的其余代码)进行回归测试,并且需要将鼠标悬停在div上,使其显示,然后单击div中的链接.
然而,我所有的努力都失败了,似乎许多人都有这个问题,没有解决方案.
提前致谢!
我希望能够读取一个字符串并返回其中出现的第一个日期.我可以使用现成的模块吗?我试图为所有可能的日期格式编写正则表达式,但它很长.有没有更好的方法呢?
我有一个模型,我用模型创建了一个模型ModelForm.现在,我想将表单分散到两个页面.例如,前三个字段将显示在第一页上,然后用户单击下一个,最后三个字段显示在第二页上.然后他点击提交,用户提交的数据被添加到数据库中.
我看了一下表单向导的文档,看起来它也适用于模型表单?有人能证实吗?
如果确实如此,有人可以解释创建WizardView课程的过程.
这个例子在文档中给出,我不明白后两个参数是什么.form_list只是您根据表单类实例化的表单对象列表吗?什么是**kwargs?
class ContactWizard(SessionWizardView):
def done(self, form_list, **kwargs):
do_something_with_the_form_data(form_list)
return HttpResponseRedirect('/page-to-redirect-to-when-done/')
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助!
我在python 2.7中有关于urlencode的问题:
>>> import urllib
>>> import json
>>> urllib.urlencode(json.dumps({'title':"hello world?",'anonymous':False,'needautocategory':True}))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/urllib.py", line 1280, in urlencode
raise TypeError
TypeError: not a valid non-string sequence or mapping object
Run Code Online (Sandbox Code Playgroud)