我有两个包含相同元素的数组,但顺序不同,我想知道它们的顺序不同的程度.
我试过的方法不起作用.它如下:
对于每个列表,我构建了一个矩阵,该矩阵为每对元素记录它们在列表中是高于还是低于对方.然后我计算了这两个矩阵的皮尔森相关系数.这非常糟糕.这是一个简单的例子:
list 1: 1 2 3 4 list 2: 1 3 2 4
我上面描述的方法产生了这样的矩阵(其中1表示行号高于列,0表示反之亦然):
list 1: 1 2 3 4 1 1 1 1 2 1 1 3 1 4 list 2: 1 2 3 4 1 1 1 1 2 0 1 3 1 4
由于唯一的区别是元素2和3的顺序,因此应视为非常相似.这两个矩阵的Pearson相关系数为0,表明它们根本没有相关性.我想问题是我正在寻找的不是真正的相关系数,而是一些其他类型的相似性度量.编辑距离,也许?
谁能提出更好的建议?
如果我在64位操作系统的64位机器上运行python,我的程序能否访问全部内存?即我可以建立一个包含100亿条目的列表,假设我有足够的RAM吗?如果没有,是否有其他编程语言允许这样做?
我有一组Word文档,我想使用我编写的PHP工具发布.我将Word文档复制并粘贴到文本框中,然后使用PHP程序将它们保存到MySQL中.我遇到的问题来自Word文档的所有非标准字符,如引号和省略号("...").我现在所做的是手动搜索并用纯文本或HTML实体替换这些东西(以及外部符号,如e-acute)(é等等)我是否可以调用PHP中的函数Word文档的输出,并将应该是实体的所有内容转换为实体,以及在Firefox中无法正确显示的其他符号转换为显示的符号.
谢谢!
我即将为刚刚加入的技术创业公司制作原型,我正在尝试决定使用哪种语言.它将是一个简单的Web工具,后台有一个MySQL数据库,其间还有一些AI内容.我过去曾经使用过Ruby和PHP一个合理的数量,但是想知道我是否会更好地使用Python甚至是Perl.我的主要编程经验是使用C/C++/Java,但我觉得我想要的东西会让我的生活尽可能简单,因为我只是在开发原型.
我猜我正在寻找的是:
有没有人对此有任何想法?
我只是想知道以下所有连接是否在逻辑上等效,如果没有,为什么不呢?
SELECT t1.x, t2.y from t1, t2 where t1.a=t2.a and t1.b=t2.b and t1.c = t2.c;
SELECT t1.x, t2.y from t1 join t2 on t1.a=t2.a where t1.b=t2.b and t1.c = t2.c;
SELECT t1.x, t2.y from t1 join t2 on t1.a=t2.a and t1.b=t2.b where t1.c = t2.c;
SELECT t1.x, t2.y from t1 join t2 on t1.a=t2.a and t1.b=t2.b and t1.c = t2.c;
Run Code Online (Sandbox Code Playgroud)
我想我真正的问题是:将"where"与"on"结合起来做一些不同于仅仅具有多个条件的东西与"on"结合在一起?
我与MySQL合作,以防万一.
我工作的公司有一个基于Web的用户界面,付费客户登录以访问数据和控制机制.
我们计划推出这个界面的全新版本,我们正在考虑的一个选项是是否在Flash中构建它.
使用Flash的理由是,它将使我们能够构建一个真正创新,引人入胜的界面.
我对此的担忧是:
有没有人对此有任何想法?我不是在询问公共网站,但Flash是一个在线用户界面的好主意吗?
顺便说一句,我对Flash知之甚少,所以如果我在这里做出任何可怕的假设,我会道歉!
我正在从一个表中提取项目列表,基于它们被包含在另一个表中,如下所示:
select fruit.id, fruit.name from fruit, fruit_rating where fruit_rating.fruit_id=fruit.id group by fruit.name;
Run Code Online (Sandbox Code Playgroud)
这很好 - 它基本上产生了一个被某人评定的所有水果的清单.但现在,我想排除一个特定用户评价的所有水果,所以我尝试了这个:
select fruit.id, fruit.name from fruit, fruit_rating where fruit_rating.fruit_id=fruit.id and fruit_rating.user_id != 10 group by fruit.name;
Run Code Online (Sandbox Code Playgroud)
没关系,但不太对劲.它显示了所有被10岁以外的人评定的水果,但如果用户1和10都评价相同的水果,它仍然显示一个.任何人都可以告诉我如何构建一个查询,只显示用户10未评级的水果,无论其他人对它们进行了评分?
我想通过共享linux服务器上的ruby访问MySQL.我想我需要使用DBI模块,但我似乎无法访问它.我安装如下:
gem install -r dbi
Run Code Online (Sandbox Code Playgroud)
它无法在正常位置安装它,因为我在共享服务器上并且没有权限:
WARNING: Installing to ~/.gem since /usr/lib/ruby/gems/1.8 and
/usr/bin aren't both writable.
WARNING: You don't have ~/.gem/ruby/1.8/bin in your PATH,
gem executables will not run.
Run Code Online (Sandbox Code Playgroud)
它似乎确实安装成功.
但是,现在当我尝试要求它时,我只是得到一个错误.所以我的代码只是:
require 'dbi'
Run Code Online (Sandbox Code Playgroud)
这会给出以下错误:
dbi_test.rb:1:in `require': no such file to load -- dbi (LoadError)
from dbi_test.rb:1
Run Code Online (Sandbox Code Playgroud)
我已经尝试将LOAD_PATH环境变量设置为dbi.rb所在的目录,但这没有任何区别.
我有一个复杂的正则表达式,我试图匹配一个长字符串(65,535个字符).我正在寻找字符串中多次出现的re,所以我正在使用finditer.它有效,但出于某种原因,它在识别出前几次出现后就会挂起.有谁知道为什么会这样?这是代码片段:
pattern = "(([ef]|([gh]d*(ad*[gh]d)*b))d*b([ef]d*b|d*)*c)"
matches = re.finditer(pattern, string)
for match in matches:
print "(%d-%d): %s" % (match.start(), match.end(), match.group())
Run Code Online (Sandbox Code Playgroud)
它打印出前四次出现,但随后挂起.当我使用Ctrl-C杀死它时,它告诉我它在迭代器中被杀死了:
Traceback (most recent call last):
File "code.py", line 133, in <module>
main(sys.argv[1:])
File "code.py", line 106, in main
for match in matches:
KeyboardInterrupt
Run Code Online (Sandbox Code Playgroud)
如果我用更简单的方法尝试它,它工作正常.
我在运行在Windows XP上的Cygwin上的python 2.5.4上运行它.
我设法让它以一个非常短的字符串挂起.使用这个50个字符的字符串,大约5分钟后它就再也没有返回:
ddddddeddbedddbddddddddddddddddddddddddddddddddddd
Run Code Online (Sandbox Code Playgroud)
使用这个39个字符的字符串返回大约需要15秒(并且不显示匹配项):
ddddddeddbedddbdddddddddddddddddddddddd
Run Code Online (Sandbox Code Playgroud)
并使用此字符串立即返回:
ddddddeddbedddbdddddddddddddd
Run Code Online (Sandbox Code Playgroud)