它是一个特定NP完全问题的多项式时间算法,还是仅仅是抽象推理能够证明存在NP完全问题的解决方案?
似乎特定的算法更有帮助.有了它,我们要多方面地解决NP问题所需要做的就是将它转换成证明有解决方案的特定NP完全问题,我们就完成了.
您对如何测试多线程应用程序有什么建议吗?
我知道,线程错误很难捕获,它们可能随时发生 - 或者根本不发生.测试很困难,结果永远不会确定.当然最好仔细设计和编程并发模块.
尽管如此 - 我不想忽略测试方面.因此,运行大量同时处理相同项目的线程有时会调用线程错误.
任何想法或最佳实践,以获得隐藏线程错误的高命中率?
(我正在使用.Net/C#)
我需要以这种方式在一个字节中打包一些位:
struct
{
char bit0: 1;
char bit1: 1;
} a;
if( a.bit1 ) /* etc */
Run Code Online (Sandbox Code Playgroud)
要么:
if( a & 0x2 ) /* etc */
Run Code Online (Sandbox Code Playgroud)
从源代码的清晰度来看,对我来说很明显,bitfields更整洁.但哪个选项更快?我知道速度差异不会太大,如果有的话,但我可以使用其中任何一个,如果一个更快,更好.
另一方面,我已经读过,不保证位域不能跨平台排列相同的位,我希望我的代码可以移植.
注意:如果您打算回答"个人资料",我会,但是因为我很懒,如果有人已经有了答案,那就更好了.
代码可能有误,如果你愿意,可以纠正我,但请记住这个问题的重点是什么,请尝试回答.
我发现了一些非常奇怪的东西,我希望能更好地理解.
var all = new List<int[]>{
new int[]{1,2,3},
new int[]{4,5,6},
new int[]{7,8,9}
};
all.ForEach(n => n.ForEach(i => Console.WriteLine(i)));
Run Code Online (Sandbox Code Playgroud)
可以改写为:
...
all.ForEach(n => n.ForEach(Console.WriteLine));
Run Code Online (Sandbox Code Playgroud)
如何省略lambda表达式参数(i =>)并仍然将当前项传递给console.WriteLine?
感谢您的任何见解.-Keith
我正在使用FileSystemWatcher监视文件夹,如下所示:
watcher = new FileSystemWatcher(folder);
watcher.NotifyFilter = NotifyFilters.Size;
watcher.Changed += changedCallback;
Run Code Online (Sandbox Code Playgroud)
当我在该文件夹中的记事本中打开一个新文件并保存时,我会收到通知.如果我继续写作然后保存,我会收到通知.如果我保存它关闭文件,我会收到通知.正是我想要的.
但是,事实证明,如果我在该文件夹中创建一个文件并将其共享模式设置为FileShare.Read,然后我写入它,则在文件关闭之前我不会收到任何通知.另一种解决方法是打开文件(例如在记事本中),这显然会导致其状态更新,然后我的监控应用程序会收到通知.另一种解决方法是我可以在Windows资源管理器中执行刷新,这再次导致文件状态更新.
有趣的是,如果我在进行更改时查看Windows资源管理器,我会注意到:
因此,我的监控应用程序似乎与Windows资源管理器共享相同的行为.我正在考虑运行一个只扫描文件夹中文件的线程,但我想知道在这种情况下是否还有更优雅的事情要做.
顺便说一下,我正在使用Win7,我不确定这个问题是否也会在其他Windows版本上发生.
谢谢!
编辑:在C++中使用ReadDirectoryChanges得到了相同的结果.实现我之前谈到的线程并没有帮助.我想知道Windows资源管理器中的F5究竟是做什么的,因为它确实会导致报告更改.
我尝试使用scp将maven创建的耳朵上传到应用服务器.
当我试图跑
mvn wagon:upload-single
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
[ERROR] Failed to execute goal org.codehaus.mojo:wagon-maven-plugin:1.0-beta-3:upload-single (default-cli) on project de.volkswagen.dps.ear: Unable to create a Wagon instance for null: url can not be null -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:wagon-maven-plugin:1.0-beta-3:upload-single (default-cli) on project de.volkswagen.dps.ear: Unable to create a Wagon instance for null
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:585)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:324)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:247)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:104)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:427)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:157)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:121)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) … 例:
class MyClass
{
Composition m_Composition;
void MyClass()
{
m_Composition = new Composition( this );
}
}
Run Code Online (Sandbox Code Playgroud)
我有兴趣在这里使用depenency-injection.所以我将不得不重构构造函数,如:
void MyClass( Composition composition )
{
m_Composition = composition;
}
Run Code Online (Sandbox Code Playgroud)
但是我现在遇到了一个问题,因为Composition-object依赖于MyClass刚创建的类型的对象.
依赖容器可以解决这个问题吗?应该这样做吗?
或者从一开始就是糟糕的设计?
是否有可能看到哪个构造函数是通用构造函数?
internal class Foo<T>
{
public Foo( T value ) {}
public Foo( string value ) {}
}
var constructors = typeof( Foo<string> ).GetConstructors();
Run Code Online (Sandbox Code Playgroud)
属性'ContainsGenericParameters'返回两个构造函数false.有没有办法找出构造函数[0]是通用的?它们都有相同的签名,但我想称之为"真正的"字符串.
编辑:
我想使用调用给定的类型
ilGen.Emit( OpCodes.Newobj, constructorInfo );
Run Code Online (Sandbox Code Playgroud)
所以我需要使用绑定版本.但我想调用"最好的"构造函数.这应该是标准行为.我打电话的时候
new Foo<string>()
Run Code Online (Sandbox Code Playgroud)
调用带有字符串签名的构造函数(而不是具有通用签名的构造函数).我的代码也应该这样.
我试图恢复密码.考虑到这一点,我认识到"密码恢复"这个问题是NP问题的一个很好的例子.如果您知道密码,则很容易在多项式时间内验证密码.但是如果您不知道密码,则必须在整个空间内搜索可能显示为指数时间的可能解决方案.
现在我的问题是:这不是证明P!= NP,因为"密码恢复"是NP的一个元素,可以显示需要多于多项式时间来运行?
这是我的PHP代码:
hash_hmac( "sha256", utf8_encode( $filename ), utf8_encode( $password ) );
Run Code Online (Sandbox Code Playgroud)
这是我的C#代码:
var hmacsha256 = new HMACSHA256( Encoding.UTF8.GetBytes( password ) );
hmacsha256.ComputeHash( Encoding.UTF8.GetBytes( filename ) );
Run Code Online (Sandbox Code Playgroud)
不幸的是,两个结果都不同 任何人都可以给我一个提示吗?
c# ×5
p-np ×2
algorithm ×1
bit-fields ×1
c ×1
c++ ×1
concurrency ×1
generics ×1
hashcode ×1
lambda ×1
math ×1
maven-2 ×1
method-group ×1
php ×1
refactoring ×1
reflection ×1
scp ×1
testing ×1
upload ×1
wagon ×1