小编Waj*_*hat的帖子

董事会大会有约束

我正在解决这个问题,但我是Prolog的新手,我不知道该怎么做.

电子板的九个部分具有方形形状,相同的尺寸,每个部分的每个边缘都标有字母和加号或减号.零件应组装成一个完整的板,如下图所示,使公共边具有相同的字母和相反的符号.在Prolog中编写一个计划程序,以便程序将"汇编"作为查询并输出如何组装零件,即确定当前位置的零件的位置和位置,以便它们组合在一起以形成完整的板.

我试过解决它,我写了以下条款:

complement(a,aNeg).
complement(b,bNeg).
complement(c,cNeg).
complement(d,dNeg).
complement(aNeg,a).
complement(bNeg,b).
complement(cNeg,c).
complement(dNeg,d).
% Configuration of boards, (board,left,top,right,bottom)
conf(b1,aNeg,bNeg,c,d).
conf(b2,bNeg,a,d,cNeg).
conf(b3,dNeg,cNeg,b,d).
conf(b4,b,dNeg,cNeg,d).
conf(b5,d,b,cNeg,aNeg).
conf(b6,b,aNeg,dNeg,c).
conf(b7,aNeg,bNeg,c,b).
conf(b8,b,aNeg,cNeg,a).
conf(b9,cNeg,bNeg,a,d).

position(b1,J,A).
position(b2,K,B).
position(b3,L,C).
position(b4,M,D).
position(b5,N,E).
position(b6,O,F).
position(b7,P,G).
position(b8,Q,H).
position(b9,R,I).

assemble([A,B,C,E,D,F,G,H,I,J,K,L,M,N,O,P,Q,R]) :- 
    Variables=[(A,J),(B,K),(C,L),(D,M),(E,N),(F,O),(G,P),(H,Q),(I,R)],
    all_different(Variables),
    A in 1..3, B in 1..3, C in 1..3, D in 1..3, E in 1..3,
    F in 1..3, G in 1..3, H in 1..3, I in 1..3, J in 1..3,
    K in 1..3, L in 1..3, M in 1..3, N in 1..3, …
Run Code Online (Sandbox Code Playgroud)

prolog clpfd

8
推荐指数
2
解决办法
563
查看次数

使用逻辑编程滑动瓷砖拼图,具有不同的瓷砖尺寸

所以我试图解决这里给出的布斯安排问题.它基本上是一个滑动瓷砖拼图,其中一个(展位)瓷砖必须到达目标点,最后所有其他(展位)瓷砖应该在其原始位置.每个图块/展位都有一个尺寸,以下是输入事实和关系描述:

  • 形状室(W,H)的一个事实,它规定
    了房间的宽度W和高度H(3≤W,H≤20).
  • 一个事实展位(B),
    规定了展位数量(1≤B≤20).
  • 由形状尺寸(B,W,H)的事实组成的关系,其指定了展位B的宽度W和高度H.
  • 由表格
    位置(B,W,H)的事实组成的关系,指定展位B的初始位置(W,H).

  • 一个事实目标(B,W,H),指定
    目标摊位B 的目的地(W,H).

  • 附加的事实视界(H)给出了要执行的移动数量的上限.

该程序应该从文件中读取输入事实,但我只是想尝试解决,所以我现在只复制粘贴一个可能的输入,我写了一些基本的子句:

room(3, 3).
booths(3).
dimension(1, 2, 1).
dimension(2, 2, 1).
dimension(3, 1, 1).
position(1, 0, 1).
position(2, 1, 2).
position(3, 0, 0).
target(3, 0, 2).
horizon(10).

xlim(X) :- room(X,_).
ylim(X) :- room(_,X).

sum(X,Y,Z) :- Z is X+Y .

do(position(B,X,Y),movedown,position(B,X,Z)) :- Y > 0 , sum(Y,-1,Z) .
do(position(B,X,Y),moveup,position(B,X,Z)) :- ylim(L), Y < L , sum(Y,1,Z) .
do(position(B,X,Y),moveleft,position(B,Z,Y)) :- X > 0 , sum(X,-1,Z) .
do(position(B,X,Y),moveright,position(B,Z,Y)) :- xlim(L), …
Run Code Online (Sandbox Code Playgroud)

prolog xsb

8
推荐指数
1
解决办法
231
查看次数

有人能给我一个不一致的可接受启发式的例子吗?

在这个图中:

在此输入图像描述 假设h(C)= 1如果f(A)= g(A)+ h(A)= 0 + 4 = 4,并且f(C)= g(C)+ h(C)= 1 + 1 = 2然后f(C)不大于或等于f(A)因此这个例子是一致的和可接受的,但是有人能给我一个不一致的可接受启发式的例子吗?请

algorithm artificial-intelligence heuristics

7
推荐指数
1
解决办法
1万
查看次数

交换字符串中的字符

我是python的新手,我想知道如何在字符串中交换两个字符.我知道字符串是不可变的所以我需要找到一种方法来创建一个交换字符的新字符串.具体来说,一种采用字符串和两个索引i,j的一般方法,并用i交换i上的字符.

string swap python-2.7

6
推荐指数
1
解决办法
2万
查看次数

如何计算Python中的一个特定单词?

我想计算文件中的特定单词.

例如,"apple"出现在文件中的次数.我试过这个:

#!/usr/bin/env python
import re 

logfile = open("log_file", "r") 

wordcount={}
for word in logfile.read().split():
    if word not in wordcount:
        wordcount[word] = 1
    else:
        wordcount[word] += 1
for k,v in wordcount.items():
    print k, v
Run Code Online (Sandbox Code Playgroud)

将'word'替换为'apple',但它仍会计算我文件中所有可能的单词.

任何建议将不胜感激.:)

python

6
推荐指数
2
解决办法
2万
查看次数

加载批量数据的正确方法

我正在尝试将大量数据加载到 memcachedb 中。我正在 MySQL 数据库上运行一些查询,我想将这些查询的结果存储在 memcachedb 中,以便以后轻松访问。

目前,我只是使用简单的 set 命令将结果存储在 memcachedb 中,但由于这些结果有数十亿个,将它们一一存储在循环中是非常低效且耗时的。所以,我想知道是否有更好的方法将数据加载到memcachedb中?就像传统RDMS中的数据导入向导

我正在使用 pylibmc 连接到 memcachedb。

python memcachedb libmemcached

5
推荐指数
1
解决办法
726
查看次数

Python3.4 Py2exe,错误 - 名称“WinDLL”未定义

我使用 Ubuntu、Python 3.4 并尝试使用py2exe将我的 py 脚本编译为 exe 。

不幸的是,当我尝试使用命令“build_exe”时,它会产生错误!有人可以帮我解决它或建议如何以另一种方式将py项目编译为exe吗?

错误代码:

NameError: name 'WinDLL' is not define.

在此处输入图片说明

python py2exe

3
推荐指数
1
解决办法
1万
查看次数

将图形保存为高分辨率或无损图像,可以在没有像素化的情况下放大

我在MATLAB中有一个很大的情节(总共4095分),我想将这个数字导出为高分辨率图像,可以放大,就像原始图形可以放大一样.下面我附上了两个图像,一个是全尺寸图第二个是通过放大图形然后导出而单独导出的.当我放大时,第一个图像会变得像素化(很明显).所以我的问题是,是否可以将图形导出为图像(任何格式,但.fig),可以放大以获得更细粒度的细节. PNG图片 放大

matlab matlab-figure

3
推荐指数
1
解决办法
931
查看次数

查找并打印具有重复列值的行

我正在寻找一个可以查找并打印多次出现列值的行(来自原始文件)的单行程序。该文件如下所示:

14:33:48 00039410636 0.0712261199951 0.000329971313477 0.000263929367065
14:33:48 00017668040 0.152565002441 0.000329971313477 0.000234842300415
14:33:49 00089210243 0.0488851070404 0.000272989273071 0.000258922576904
14:33:49 00062300425 0.0536940097809 0.000277042388916 0.000309228897095
14:33:49 00023109101 0.0781791210175 0.000399112701416 0.000282049179077
14:33:49 00081500442 0.0786049365997 0.000335216522217 0.000293970108032
14:33:49 00026589717 0.0577909946442 0.000392913818359 0.000264883041382
14:33:49 00087878627 0.0432670116425 0.000298023223877 0.000286102294922
14:33:49 00014210886 0.101092100143 0.000373840332031 0.000265121459961
14:33:49 00059863500 0.0529019832611 0.000293016433716 0.000245094299316
14:33:51 00092798813 0.0535080432892 0.00034499168396 0.000228881835938
14:33:51 00054882920 0.0543820858002 0.000327110290527 0.000303983688354
14:33:51 00021580622 0.0117089748383 0.000319004058838 0.000248908996582
15:14:59 00013458771 0.0104720592499 0.000365018844604 0.000272989273071
14:53:20 00093117190 0.00757884979248 0.00036096572876 0.00032114982605
14:33:52 00021129829 0.0112619400024 0.00036096572876 …
Run Code Online (Sandbox Code Playgroud)

unix awk duplicates

3
推荐指数
1
解决办法
9831
查看次数

sizeof(string)不等于字符串长度

我曾经认为每个字符都是一个字节(至少在c/c ++中是这种情况)所以字符串的大小应该等于len(string)字节.但是,一个简单的实验告诉我在python中并非如此:

import string, sys, random
# abstracted code, removed unnecessary parts
def loadKeyLength(db,key,N):
    val = key[:5] + ''.join(random.choice(string.ascii_letters + string.digits) for _ in xrange(N-5))
    print sys.getsizeof(val), len(val),val

def loadKeysSize(s): 
    r=0
    key=str(s).zfill(5)+str(r).zfill(5)
    loadKeyLength(None,key,s)

for i in range(80,120,3):
    loadKeysSize(i)
Run Code Online (Sandbox Code Playgroud)

Ubuntu 14.04上的输出:

117 80 000802qdxV2TY3qjGpe6F35hLczQNE2h7bWRWpHEMxqcyrb01sI2A6gcTLKLxdQSFjGMFtWPZJDOtKe4
120 83 00083oX6FouwlAyUkmZZCLWuIWnDMAKZDlNvO4ElHTK4x6vjka42APnwOcEMFHDLXbTZg9CUpd5ALqveowX
123 86 000860z1yhl3i1mKYFMhY4D2kWKA6Bvpfw91VeI7gXyP52PrVbLoP95ykgkz47k3KhCgmgrHq3CBCEdV14aiOa
126 89 00089xfcmZyf8RrftFbxvx9qvJUd8bvG5FKH2Ydz7aN5EsnaBpQkvrTLIsAKNRADeF1M74Ghvk1opzRs28IokPVhS
129 92 00092COlhIGMXrQ4Zl7e6GPlVz43BVWLbnvC3ymtoZ6Itus8KWuM1I31xGPU5Y4vggpcq2g4c6uSvnmUjsAgpYkNoX1u
132 95 00095IrjvnSVC8ECKf2cNUsBkzrSfuTNobIUmAD9BktiMfQSoCBLkwPOa2QmovhnUEpYyAsCKdM2haVqb53PggDviQHseex
135 98 00098DsLvbvWmqgyuWsnQd0DillNmd3LyTSJ98XjKUDhbqBSxhVRoXyv0IkOjWAbZIEb5lmrnISWS28WS4OpisoJYPCIfnB4bw
138 101 00101JNfUNutpjBFhFlhyNhFae2gulYTIfBpfoBbnLl881LPeZNGQkwYF49pbDEvnqYkPSleFUrZ1tEfO4AokI7ka3Gcn8KkTmWWg
141 104 00104lbmN2zeZeUMS6xGQfjtImCkwQwmewbXxsxj0NGETdBGwAfnhBmXOSew8LMdULQYCEA3Nz8ny6OlGfOUP3zjf5lZXlNC8Cn89Il4
144 107 00107UwQCaa4szAYj9if1oIPleauAvyWVkyDzbtZSt0SiKfJgNG7avZLe4TSTWXuEZBOUICfTAjIzVlShwXJ54Oz14rZlBrQL0w05FJsckY
147 110 00110lNZA1HsGmdFZke0Up1PwxPtpt2RFDM9EdOljQ6K3oao44Q6CNsBZHxo56n63Lny5l6k5ny7rhgWtkEGoJS7JbeNBg9ACXApfz4seWiZrX
150 113 00113KJ1sSGNZfZx2xl0MBXY0yf6ybPNjpmYBYiHi0ZsBb9GFuE9hIQgR0TssgbdE9sqq1m90YlS1ZWHSwwElaCkNOT05GbbIt3AfZAzzlpul5jEJ
153 116 …
Run Code Online (Sandbox Code Playgroud)

python string sizeof python-2.7

0
推荐指数
1
解决办法
220
查看次数