需要从命令提示符快速打开当前目录.我知道有一个命令explorer.
但要输入目录的完整路径非常不方便.
例如:
exoplorer c:\progra~1\nodejs~1\worskp~1\project\module\convert
Run Code Online (Sandbox Code Playgroud)
有用.但是你用鼠标打开文件夹的速度越快......我认为这是不对的.
这个命令:
explorer cd.
Run Code Online (Sandbox Code Playgroud)
打开My Documents.虽然我在不同的目录中.
是否请提示我!
好的,我知道这是一个非常普遍的问题,并且已经写了一些关于这个主题的论文,但我觉得这些出版物涵盖了非常基本的材料,我正在寻找更先进的东西来改善风格和效率.这就是我的论文:
这些主题涵盖的示例主题包括:尾递归和差异列表,正确使用索引,正确使用剪切,避免断言和缩回,避免CONSing,代码格式化指南(缩进,if-then-elses等),命名约定,代码记录,参数顺序,测试.
您将从Prolog的个人经历中添加什么?是否有适用于CLP编程的特殊风格指南?你知道一些常见的效率问题,知道如何处理它们吗?
更新:
这里有一些有趣的(但仍然太基础和太笼统)点:Lifeware团队的Prolog编程指南
为了突出整个问题,我想问一下"Prolog的编码指南"(Covington等人):
据我们所知,Prolog的一套连贯且相当完整的编码指南从未发布过.此外,当我们查看已发布的Prolog程序的语料库时,我们看不到事实上的标准出现.这一明显遗漏背后的最重要原因是,由于缺乏全面的语言标准,小型Prolog社区进一步分散为以个体Prolog系统为中心的子社区,其中没有一个具有支配地位.
我正在寻找研究论文或任何其他出版物,比较不同的抽象机器(不止一个)执行Prolog与不基于抽象机器的prolog解释器.到目前为止我所看到的是,大多数实现似乎都是基于Warren Abstract Machine的prolog解释器,尽管提出了其他抽象机器(例如维也纳抽象机,面向树的抽象机)并且没有任何一般的比较.我对效率的比较感兴趣(不是特征),尽管所有比较的解释器都应该允许约束逻辑编程.
我尝试在Prolog CLPFD中实现高效的异或(XOR).这应该是简单的谓词,如:
xor(A, B, AxorB).
Run Code Online (Sandbox Code Playgroud)
A,B,AxorB是自然数(用0表示)和AxorB是的结果A 的XOR B.
我的主要问题是效率.首先,我无法找到任何方法来对两个数字进行异或,而不将这些数字分成可以进一步处理/约束的单独部分,并且打破这些数字的过程(创建适当的约束然后解析它们)正在进行一些处理时间.其次,我不能提出任何有效的方法来"模拟"自然数字上的XOR函数,而不是在下面的第二个代码中给出.
让我们从我的第一个代码开始.这是最简单的XOR实现,它仅适用于1位值(0和1):
xor_1bit_values(A, B, AxorB) :-
AxorB #= (A + B) mod 2.
Run Code Online (Sandbox Code Playgroud)
要将其用于大于1的数字,必须将数字分成位:
xor_number(A, B, Result, Bits) :-
Count is Bits - 1,
xor_number(A, B, Result, Count, 0).
xor_number(A, B, Result, 0, Sum) :-
xor_1bit_values(A, B, Xor),
Result #= Xor + Sum.
xor_number(A, B, Result, Count, Sum) :-
P is 2^Count,
X #= A / P,
Y #= B / P,
xor_1bit_values(X, …Run Code Online (Sandbox Code Playgroud) 我编写了一些谓词来解决大型调度问题,它们运行良好,但我希望它们具有更好的性能。我运行过profile/1,我看到与 CLPFD 相关的谓词占用了 99% 的时间。特别是garbage_collect- 它需要 37% 的执行时间。
现在,我能做什么?我的代码并不是特别复杂,它使用了很多cumulative/2和一些global_cardinality/2,除此之外没有什么特别的。我已经为labeling/1(ff, ffc, bisect)尝试了一些不同的选项,但没有区别(实际上,bisect 让事情变得更糟)。我试过用set_prolog_stack/2(全局限制、局部限制、全局 min_free、局部 min_free)提高内存限制。
我还能做些什么吗?
是否有任何替代实施cumulative/2或global_cardinality/2可以具有更好的性能?
我有一个运行良好的 Laravel 应用程序,但由于某些奇怪的原因,日志文件中有很多奇怪的消息:
\n\n\n\n\n[2019-10-04 10:24:21] Production.ERROR: SQLSTATE[HY000] [1045] 用户\'forge\'@\'localhost\'访问被拒绝(使用密码:NO){“例外”:“ [object] (Doctrine\\DBAL\\Driver\\PDOException(code: 1045): SQLSTATE[HY000] [1045] 用户\'forge\'@\'localhost\' 的访问被拒绝(使用密码:NO) /var/www/html/pzw_prod/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:31,PDOException(代码:1045):SQLSTATE [HY000] [1045]用户\'forge的访问被拒绝\'@\'l ocalhost\'(使用密码:NO)位于 /var/www/html/pzw_prod/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:27)
\n
问题是,我没有使用名为 的用户连接到数据库forge。我.env使用完全不同的登录名。而且,我再说一遍,一切正常:与数据库的通信按预期工作。数据读写成功。
那么...为什么日志文件中出现此消息?
\n\n更新:
\n\nconfig(\'database\')
$ php artisan tinker\nPsy Shell v0.9.9 (PHP 7.2.22 \xe2\x80\x94 cli) by Justin Hileman\n>>> config(\'database\')\n=> [\n "default" => "mysql",\n "connections" => [\n "sqlite" => [\n "driver" => "sqlite",\n "url" => null,\n "database" => /* CENSORED */,\n "prefix" => "",\n "foreign_key_constraints" => true,\n ],\n …Run Code Online (Sandbox Code Playgroud) 请参阅下面的简单代码:
#include <iostream>
#include <stdlib.h>
using namespace std;
int main(void)
{
unsigned long currentTrafficTypeValueDec;
long input;
input=63;
currentTrafficTypeValueDec = (unsigned long) 1LL << input;
cout << currentTrafficTypeValueDec << endl;
printf("%u \n", currentTrafficTypeValueDec);
printf("%ld \n", currentTrafficTypeValueDec);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
为什么printf()显示带负值的currentTrafficTypeValueDec(unsigned long)?
输出是:
9223372036854775808
0
-9223372036854775808
Run Code Online (Sandbox Code Playgroud) 我尝试在我的raspberry-pi上使用nginX在PHP(php-fpm)中将语言环境从fr_FR设置为us_US.
这是我的代码:
<?php
system('locale -a');
/*
C POSIX en_US.utf8 fr_FR fr_FR.iso88591 fr_FR.iso885915@euro fr_FR.utf8
So the en_US locale is well installed
*/
echo locale_get_default();
/* fr_FR */
echo setlocale(LC_ALL, '0');
/*
LC_CTYPE=fr_FR.UTF-8;LC_NUMERIC=C;LC_TIME=C;LC_COLLATE=C;LC_MONETARY=C;
LC_MESSAGES=C;LC_PAPER=C;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;
LC_MEASUREMENT=C;LC_IDENTIFICATION=C
*/
var_dump(setlocale(LC_ALL, 'en_US.UTF-8', 'en_US.UTF8'));
/* bool(false) */
var_dump(setlocale(LC_ALL, 'fr_FR.UTF8'));
/* string(10) "fr_FR.UTF8"
useless, but it shows that setlocale works with the already set locale */
?>
Run Code Online (Sandbox Code Playgroud)
我不明白为什么要setlocale回来false.
似乎有些东西不起作用,但我无法找到什么.
问题:我使用的是MYSQL和PHP最新版本.我们在MYSQL FULLTEXT搜索中遇到了这个问题.它不适用于特殊字符.
示例:在域表中,"名称"字段具有以下三个值:
1. https://www.google.com
2. https://www.yahoo.com
3. https://www.trafe.com
Run Code Online (Sandbox Code Playgroud)
如果我使用搜索词https://www.google.com,它将显示以上三个值作为结果,但正确的答案是https://www.google.com.
查询:
SELECT name
FROM domains
WHERE MATCH (name) AGAINST ('https://www.google.com*' IN BOOLEAN MODE);
Run Code Online (Sandbox Code Playgroud)
实际结果: https://www.google.com
我有一个简单的问题:在R ^ pi中给出p点(非共线)找到通过这些点的超平面(以帮助澄清我在R中输入所有内容):
p<-2
x<-matrix(rnorm(p^2),p,p)
b<-solve(crossprod(cbind(1,x[,-2])))%*%crossprod(cbind(1,x[,-2]),x[,2])
Run Code Online (Sandbox Code Playgroud)
那么,给定第p + 1个点与第一个p点不共线,我发现方向垂直于b:
x2<-matrix(rnorm(p),p,1)
b2<-solve(c(-b[-1],1)%*%t(c(-b[-1],1))+x2%*%t(x2))%*%x2
Run Code Online (Sandbox Code Playgroud)
也就是说,b2定义垂直于b并经过x2的p维超平面.现在,我的问题是:
公式来自我对这个维基百科条目的解释("solve(A)"是A ^ -1的R命令).为什么这不适用于p> 2?我究竟做错了什么 ?
PS:我看过这篇文章(在关注流量编辑:抱歉不能发布多个链接)但不知怎的,它对我没有帮助.
提前致谢,
当p> 2时,我对Liu的解决方案的实现/理解有问题:
不应该将明显矩阵的qr分解与超平面方向之间的点积设为0?(即,如果qr向量垂直于超平面)
即,当p = 2时
c(-b[2:p],1)%*%c(a1)
Run Code Online (Sandbox Code Playgroud)
给出0.当p> 2时,它不会.
这是我尝试实施Victor Liu的解决方案.
a)在R ^ p中给出p线性独立观测:
p<-2;x<-matrix(rnorm(p^2),p,p);x
[,1] [,2]
[1,] -0.4634923 -0.2978151
[2,] 1.0284040 -0.3165424
Run Code Online (Sandbox Code Playgroud)
b)将它们放在矩阵中并减去第一行:
a0<-sweep(x,2,x[1,],FUN="-");a0
[,1] [,2]
[1,] 0.000000 0.00000000
[2,] 1.491896 -0.01872726
Run Code Online (Sandbox Code Playgroud)
c)执行矩阵a0的QR分解.nullspace中的向量是我正在寻找的方向:
qr(a0)
[,1] [,2]
[1,] -1.491896 0.01872726
[2,] 1.000000 0.00000000
Run Code Online (Sandbox Code Playgroud)
确实; 这个方向与维基百科公式的应用给出的方向相同(使用x2 =(0.4965321,0.6373157)):
[,1]
[1,] 2.04694853
[2,] -0.02569464
Run Code Online (Sandbox Code Playgroud)
......具有更高尺寸的优点.
我还有最后一个问题:当p> 2时,另一个p-1(即(1,0)这里)QR向量的含义是什么?-提前致谢,
我是新手程序员C/C++.学习指针和角色指针,并试图解决运动问题.问题陈述
给出一句"世界是一个住在的好地方"
问题描述:根据字长的升序重新排列给定的句子
输出应该是"A是生活世界的好地方"
我正在尽力而且粘贴我写的代码,但无法得出答案.有人可以指出错误.我相信有很多.
#include <iostream>
#include <string.h>
using namespace std;
char* breakIntoWords(char *,char*pt);
int getwordcount(char* p)
{
int wc = 0;
while(*p == ' ')
{
p++;
}
while( 1) {
while( *p != ' ' && *p != '\0' && *p !='\n')
{
p++;
}
if(*p == ' ')
{
p++;
}
else{
break;
}
wc++;
}
wc++;
return wc;
}
int main()
{
char bsentence[120][5];
char sentence[120];
cout<<"Ent&er STring"<<endl;
char *p ;
p = "Test it …Run Code Online (Sandbox Code Playgroud) 我有一个程序试图以非常高的频率更新 Gtk::Label,并且表现出非常不稳定的行为。我收到了几个这样的错误:
(gtkWindow:26559): Pango-CRITICAL **: pango_layout_copy: assertion 'PANGO_IS_LAYOUT (src)' failed
(gtkWindow:26559): Pango-CRITICAL **: pango_layout_set_width: assertion 'layout != NULL' failed
(gtkWindow:26559): Pango-CRITICAL **: pango_layout_get_pixel_extents: assertion 'PANGO_IS_LAYOUT (layout)' failed
(gtkWindow:26559): GLib-GObject-CRITICAL **: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
Run Code Online (Sandbox Code Playgroud)
直到程序最终崩溃:
Pango:ERROR:pango-layout.c:3916:pango_layout_check_lines: assertion failed: (!layout->log_attrs)
Run Code Online (Sandbox Code Playgroud)
2921 中止(核心转储)
相关代码行:
while(1){
std::string sensorLine="";
_serial.readLine(&sensorLine); // read serial data with boost::asio
_output->set_label(sensorLine.data()); // _output -> Gtk::Label*
std::cout<<sensorLine<<std::endl;
//sleep(1);
}
Run Code Online (Sandbox Code Playgroud)
如果我尝试使用_output->setlabel,我只会收到错误,如果我评论这一行,一切都运行顺利,输出打印在控制台中。如果我sleep()在循环内部调用,Gtk::Label也会发生同样的事情,将更新为命令行并且不会引发错误。此循环在接收 _output 作为参数的单独线程上运行。
我有两个块做同样的事情.
if(print) for(int i = 0; i < numt; i++) if(primes[i]) {
printf("%d\n", i);
numprimes++;
}
//fast
else if(!print) for(int i = 0; i < numt; i++) if(primes[i]) {
numprimes++;
}
Run Code Online (Sandbox Code Playgroud)
和
if(print) for(int i = 0; i < numt; i++) if(primes[i]) {
printf("%d\n", i);
numprimes++;
}
//very slow
else for(int i = 0; i < numt; i++) if(primes[i]) {
numprimes++;
}
Run Code Online (Sandbox Code Playgroud)
我估计第一个比第二个快一倍.为什么是这样?效果发生在多个编译器中(Mingw,msvc).print默认情况下为false,但您可以使用命令行args更改它.我在两种情况下都没有运行程序.这是一个真正的谜......
整个档案:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
#include …Run Code Online (Sandbox Code Playgroud)