N-Queens问题:
这个问题表明,给定一个大小为N乘N的国际象棋棋盘,找到不同的排列,其中N个皇后可以放在棋盘上而没有任何一个相互威胁.
我的问题是:
程序可以在合理的时间内计算出答案的N的最大值是多少?或者到目前为止我们看到的最大N是多少?
这是我在CLPFD(Prolog)中的程序:
generate([],_).
generate([H|T],N) :-
H in 1..N ,
generate(T,N).
lenlist(L,N) :-
lenlist(L,0,N).
lenlist([],N,N).
lenlist([_|T],P,N) :-
P1 is P+1,
lenlist(T,P1,N).
queens(N,L) :-
generate(L,N),lenlist(L,N),
safe(L),
!,
labeling([ffc],L).
notattack(X,Xs) :-
notattack(X,Xs,1).
notattack(X,[],N).
notattack(X,[Y|Ys],N) :-
X #\= Y,
X #\= Y - N,
X #\= Y + N,
N1 is N + 1,
notattack(X,Ys,N1).
safe([]).
safe([F|T]) :-
notattack(F,T),
safe(T).
Run Code Online (Sandbox Code Playgroud)
这个程序运行得很好,但是它花费的时间不断增加N.这是一个示例执行:
?- queens(4,L).
L = [2, 4, 1, 3] ;
L = [3, 1, 4, 2] ;
No
Run Code Online (Sandbox Code Playgroud)
这意味着您将4个皇后放置在第1列的第2行,第2列的第4行,第3行的第1行和第4行的第3行(在4乘4的棋盘中)
现在让我们看看这个程序是如何执行的(计算第一个排列所花费的时间):
对于N …
我遇到会话到期问题.首先它每20分钟到期,它会抛出一个错误......
我试图修复它:
if (Session["userName"].ToString() == null)
{
Session.RemoveAll();
Response.Redirect("~/Login.aspx?sessionError=" + "*Session Expired on pageload PleaseLog in again");
}
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
你调用的对象是空的.
我的堆栈跟踪是:
[NullReferenceException:对象引用未设置为对象的实例.] c:\ Users\jagmit\Documents\Visual Studio 2008\Projects\copiunGUI\copiunGUI\Site1.Master.cs:224 copiunGUI中的copiunGUI.Site1.checksession() .Site1.TreeViewMain_Unload(Object sender,EventArgs e)在C:\ Users\jagmit\Documents\Visual Studio 2008\Projects\copiunGUI\copiunGUI\Site1.Master.cs:210 System.Web.UI.Control.OnUnload(EventArgs e) )+8681754 System.Web.UI.Control.UnloadRecursive(Boolean dispose)+252 System.Web.UI.Control.UnloadRecursive(Boolean dispose)+188 System.Web.UI.Control.UnloadRecursive(Boolean dispose)+188 System. Web.UI.Control.UnloadRecursive(Boolean dispose)+188 System.Web.UI.Control.UnloadRecursive(Boolean dispose)+188 System.Web.UI.Page.UnloadRecursive(Boolean dispose)+23 System.Web.UI.Page .ProcessRequestCleanup()+43
我web.config是:
<authentication mode="Forms">
<forms loginUrl="Login.aspx" defaultUrl="~/Default.aspx" name="Cookie" timeout="10080" path="/">
</forms>
</authentication>
<authorization>
<deny users="?"/>
<allow users="*"/>
</authorization>
Run Code Online (Sandbox Code Playgroud)
请帮忙.......
谢谢
谢谢你输入的人......
我试过这个:
if (Session["userName"] == null)
{
Session.RemoveAll(); …Run Code Online (Sandbox Code Playgroud) 我已经阅读了维基百科对域模型的定义.我还是不明白.我一直在阅读很多关于NHibernate的帖子,几乎在我阅读的每篇文章中我都看到了"域模型"一词.究竟是什么,并且任何人都有域模型的例子.
我在我的应用程序中使用回形针作为附件.我正在为一堆旧数据编写一个导入脚本,但我不知道如何从磁盘上的文件创建paperclip对象.我的第一个猜测是创建模拟CGI多部分对象,但这似乎是一个粗略的解决方案,我的初始尝试失败,我想因为我没有得到正确的to_tempfile方法.
有没有正确的方法来做到这一点?这似乎应该是相当容易的事情.
我想捕获我的机器的所有传入HTTP数据包.要做到这一点,我使用的是SharpPcap,这是一个WinPcap包装器.
SharpPcap运行良好,但它捕获TCP数据包,这是太低的水平,无法做我想要的.有谁知道如何从所有这些TCP数据包中轻松获得完整的HTTP请求/响应?
谢谢
我已经制作了一个滚动/环绕项目地图的方法,这样如果到达目的地,该方法将返回第一个项目,反之亦然.
有更简洁的方法吗?
MyMap::const_iterator it = myMap.find(myKey);
if (it == myMap.end())
return 0;
if (forward) {
it++;
if (it == myMap.end()) {
it = myMap.begin();
}
} else {
if (it == myMap.begin()) {
it = myMap.end();
}
it--;
}
Run Code Online (Sandbox Code Playgroud) 我有花车的数组,其中数据存储与不同的小数点所以有的123.40000,123.45000,123.45600...现在如果我要在打印字符串中的这些值,而不到底0 printf(),让自己123.4,123.45,123.456,没有那些0到底.这可能吗?如果是这样,怎么样?
结果之间是否存在差异:
MyModel.objects.filter(pk=1)
Run Code Online (Sandbox Code Playgroud)
和
MyModel.objects.get(pk=1)
Run Code Online (Sandbox Code Playgroud)
如果没有区别,为什么.get()方法存在?
这是我正在谈论的简化示例:
Table: students exam_results
_____________ ____________________________________
| id | name | | id | student_id | score | date |
|----+------| |----+------------+-------+--------|
| 1 | Jim | | 1 | 1 | 73 | 8/1/09 |
| 2 | Joe | | 2 | 1 | 67 | 9/2/09 |
| 3 | Jay | | 3 | 1 | 93 | 1/3/09 |
|____|______| | 4 | 2 | 27 | 4/9/09 |
| 5 | 2 | 17 …Run Code Online (Sandbox Code Playgroud) 当您列出静态库的符号表时,例如nm mylib.a,每个符号旁边显示的8位十六进制是什么意思?这是代码中每个符号的相对位置吗?
此外,多个符号可以具有相同的符号值吗?一堆符号值为00000000的不同符号是否有问题?