好吧,我必须制作一个nim游戏并尝试找到总是通过以下nim游戏获胜的策略:
21场比赛,每场比赛1和2每场比赛需要1,2,3,4或5场比赛,并且一场比赛不能获得前一场比赛所需的相同数量的比赛.如果/当他们参加最后一场比赛时,电子竞技者将获胜.
我必须为此编程,但我甚至不明白是要开始.如何通过这种类型的nim游戏找到获胜策略?
编辑:
所以我认为当你仍然处于中间的7场比赛时你将永远获胜.另一个可以拿2-5,最多可以加7个.当另一个取1时,你拿3(另一个不能取3)然后必须选择1或2,在这种情况下你将获得一个并获胜.
然而,从21到7对我来说是一个难题,我无法弄清楚你如何能够永远成为7人.
编辑2:确定没有规则,你不能采取与以前的播放器相同,我认为这很简单.
你得到k = 5 + 1 = 6.然后你应该进行第一次移动,使得匹配剩下那么%6 = 0.所以在这种情况下先取3然后再填充其他玩家的移动到6但是在这种情况下不会起作用,因为其他玩家可以拿3,之后你不能拿3来填补6.所以有我的问题.有任何想法吗?
EDIT3:
好的,所以你说我可以强迫7场比赛.但是假设我对14-7比赛步骤采取相同的想法.(然后是另一个)
那么有两个场景:1:他拿到2-5然后我把它填满七个让7在那里我赢了.2:他拿1分,所以剩下13分.当我在(7-0)步骤中取3时,它变为10.然后他取5,我不能再拿5来完成,我会松开.
这就是问题所在,方案2在(7-0)步骤中没有问题.我该如何解决这个问题?
是的,解决方案:
顺便说一下,na speler 1意味着:在玩家1轮之后等(我是荷兰人).

好的,所以我尝试了一些东西,我想我有解决方案.你必须先将1场比赛作为第一名球员.然后其他人可以参加2-5场比赛.你匹配(双关语)他的金额最多为7,所以你总共会有(21-1-7 =)13场比赛.然后又是玩家2的回合,并且有两种情况:玩家2需要1,2,4或者5场比赛,在这种情况下,您将获得尽可能多的匹配,左侧将有7个.(正如之前所说的那样,当你进行比赛时,剩下7分,你总会获胜).第二种情况是,玩家2需要3场比赛,在这种情况下,当轮到你时,中间有10场比赛.你不能拿3来制作7,因为你不能拿2倍相同的金额.所以你拿5分,剩下5分.玩家2然后可以'
这是我猜的解决方案.我不知何故来到它,因为我注意到了这一点:
正常Nim游戏与modulo等:
P2 1 2 3 4 5
P1 5 4 3 2 1
------------------
6 6 6 6 6
Run Code Online (Sandbox Code Playgroud)
但是你不能在这里做3,3所以这是骗子:
p2 1 2 3 4 5
p1 5 4 3 2 1
---------------------
7 7 7 7
Run Code Online (Sandbox Code Playgroud)
所以你每次都可以做7次,1次是特例.我不知道为什么,但我直觉地把1作为起点,因为你觉得你需要主动控制对方的动作.(一个不能做两次1,所以另一个必须采取2-5,这使你控制)
无论如何,感谢所有的帮助.也为整个程序编写.我无法使用它,因为它不会编译为缺乏良好的Java技能:)我也想自己解决它.
无论如何,我看到这是一个维基,祝未来人们试图解决这个问题!
我需要拆分一些文件,我正在寻找选项来保留拆分文件中的完整文件历史记录.
背景...
我继承了一个包含大量Oracle PL/SQL包的项目,其中包规范和包体都存储在一个".sql"文件中.我更喜欢将包规范和包体放在单独的文件中.
即
从...开始: myfile.sql
我想拆分这个文件,以便第一位(包规范)进入:
myfile.pks
Run Code Online (Sandbox Code Playgroud)
最后一点(包体)进入:
myfile.pkb
Run Code Online (Sandbox Code Playgroud)
我没有问题做分离本身,但我想知道如果任何人有任何想法如何,我可以保留节目的文件历史myfile.sql在这两个myfile.pks和myfile.pkb.
我有一个JavaScript数组dataArray,我想推入一个新的数组newArray.除了我不想newArray[0]成为dataArray.我想将所有项目推入新数组:
var newArray = [];
newArray.pushValues(dataArray1);
newArray.pushValues(dataArray2);
// ...
Run Code Online (Sandbox Code Playgroud)
甚至更好:
var newArray = new Array (
dataArray1.values(),
dataArray2.values(),
// ... where values() (or something equivalent) would push the individual values into the array, rather than the array itself
);
Run Code Online (Sandbox Code Playgroud)
所以现在新数组包含各个数据数组的所有值.是否有一些像pushValues现有的速记,所以我不必迭代每个人dataArray,逐个添加项目?
客户有一份重量为1.63 MB的pdf通讯,所以不是很大.
我们发送一封电子邮件,其中包含指向pdf的链接.或者用户在网站的主页上找到链接.没关系.
问题是,当用户请求PDF时,浏览器有时会进行深度冻结.即,您需要使用任务管理器来终止浏览器实例.
你可以在这里测试pdf: 时事通讯
让它变得困难的是它并不总是失败.以下是我在哪里以及我尝试过的内容的摘要.
BROWSERS
使用pdf失败的最可能的浏览器是Google Chrome.但是,IE有时也会冻结.
错误
谷歌浏览器有时会返回以下错误(经过漫长的等待):
"处理页面时出错.出现文件I/O错误.文件连接超时."
IE只是在没有呜咽的情况下冻死了.
ACROBAT版本
该文件最初由设计工作室在Adobe InDesign CS3中创建.我们刚收到pdf.我尝试使用Acrobat 7重新保存文件,以防出现兼容性问题.这似乎在一台机器上清除了问题,但在其他机器上却没有......
谷歌的结果
谷歌搜索显示Chrome和PDF存在一些问题.我还没有找到任何解决方案.这仍然无法解释为什么IE有时失败.
其他措施
我在测试之间清除每个浏览器的缓存.所以它不能只是一个错误的下载.
用ACROBAT PRO打开文件
以这种方式打开文件没有问题.
网络服务器
Web服务器人员已经测试了该文件并且没有任何问题.他们可以在日志中找不到任何问题,这表明文件已下载,并且问题发生在浏览器中.
救命!
该通讯本应该在两天前发布,但我们正在试图解决这个问题.坏消息是我已经没有想法了.
编辑:
解决方法:
我跟进了pestaa的建议(见下面的答案),它提供了一个有效的解决方法.对于用户类型(脑炎的医疗慈善机构,可能让患者留下脑损伤)不是最佳的,但它有效.即,附上以下http标头:
Content-Disposition: attachment
Run Code Online (Sandbox Code Playgroud)
为此,我创建了一个页面,其中包含一个包含以下代码的按钮:
protected void downloadButton_Click(object sender, EventArgs e)
{
string fileName = "newsletter49.pdf";
string filePath = Server.MapPath("~/images/ipdf/mailings/" + fileName);
Response.Clear();
Response.AppendHeader("content-disposition", "attachment; filename=" + fileName);
Response.ContentType = "application/octet-stream";
Response.WriteFile(filePath);
Response.Flush();
Response.End();
}
Run Code Online (Sandbox Code Playgroud)
页面的html(包括按W3C标准要求下载Acrobat Reader的按钮):
<h2>
Our Autumn/Winter 2010 Newsletter is now available</h2>
<p>
Please …Run Code Online (Sandbox Code Playgroud) 我不想Code Signing Identity在目标的构建选项卡中选择我的分发配置文件.但我的所有证书(开发人员,临时,......)都是灰色的.所以似乎没有安装新的配置文件XXX.mobileprovision.准则说
下载分发配置文件并将其安装在Xcode Organizer中.将.mobileprovision文件拖到管理器中IPHONE DEVELOPMENT下的Provisioning Profiles列表中.
但没有任何反应.没有绿色加号图标出现.
如果我双击配置文件,Xcode会显示一个空文件...
有人可以帮我吗?
附加信息:
首先,我创建了一个Ad-Hoc配置文件(带有另一个包标识符),它可以工作(现在).Mac上的证书所有者和用户名不相同(但私钥是在此用户名下创建的).在Xcode中,我只能看到旧的开发人员证书(来自Ad-Hoc配置文件).
我将应用程序设置为Release.
当我在eclipse中使用ant构建应用程序时.我遇到了java.lang.OutOfMemoryError:Java堆空间.如何在eclipse下设置ANT_OPTS?
谢谢.
我知道这个问题曾多次被问过,但这些答案都没有在我的情况下发挥作用.我有一个ASP.NET MVC2应用程序,它在我的本地IIS 7.5(7600.16385)上以集成模式运行的AppPool上使用Forms身份验证.有趣的是,使用VS 2010附带的开发Web服务器时不会发生这种情况.我的web.config文件包含no <authorization />和no <location />元素.当我点击主页时,除了存储在~/Content目录中的.CSS和.PNG文件之外,我在登录视图中获取所有内容.当我直接使用http://localhost/WebSubscribers/Content/Site.css请求.CSS文件时,我被重定向到登录页面.看起来像一个通配符映射尝试授权每个请求,即使我允许使用该请求<location path="Content" /> 如下所示:
<location path="Content" >
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
Run Code Online (Sandbox Code Playgroud)
我在Stack Overflow上找到的大多数答案建议只添加这样一个位置元素来解决问题,但这对我不起作用,所以我删除了它.
我在IIS中没有创建通配符映射,只是为了确保,我删除了站点并重新创建它指向同一目录,只是为了得到相同的结果.可以在IIS以外的任何地方指定通配符映射吗?我的web.config文件可以"获取"某种通配符映射吗?我使用Telerik MVC控件,它们似乎对web.config文件进行了一些更改(注册命名空间,httpHandlers,模块).
还有其他建议吗?
更新:当使用Chrome浏览网站而未经过身份验证时,"资源"开发人员工具会对我的Site.css文件说明以下内容:"Site.css:-1Resource解释为样式表,但使用MIME类型text/html进行传输."
这样的哑剧类型会在哪里设置?IIS中的站点节点显示".css | text/css | Inherited".
authorization web-config telerik visual-studio-2010 asp.net-mvc-2
编辑:是否可以将实体框架与Windows Azure开发存储服务一起使用?如何?
谢谢.
如何在提交按钮的表面上放置本地化消息?我正在使用Wicket,通常使用本地化的消息,我会使用类似的东西<wicket:message key="message-key"/>
我有一个HTML按钮定义为 <input type="submit" value="login"/>
我想本地化/国际化价值'登录'
有任何想法吗?