基本上,我知道如何创建图形数据结构,并在允许副作用的编程语言中使用Dijkstra算法.通常,图算法使用一种结构将某些节点标记为"已访问",但这有副作用,我试图避免这种情况.
我可以想到一种在函数式语言中实现它的方法,但它基本上需要将大量的状态传递给不同的函数,我想知道是否有更节省空间的解决方案.
来自NP-Complete的维基百科条目:
"证明一些新问题是NP完全的最简单的方法是首先证明它是在NP中,然后减少一些已知的NP完全问题"
我很确定我理解这一点:如果我有问题,我可以证明它是NP-Complete如果我:
表明它在NP中(可以在非确定性图灵机上的多项式时间内验证问题的解决方案)
表明已知为NP-Complete的问题可以"减少"到新问题
所以,我的问题是,第一个NP完全问题"被证明"是NP完全的吗?同时,已知NP完全问题的集合必须为零,这将使得在上述过程中不可能采用步骤2.
这让我觉得有一种不同的证明方法,我不知道.由于缺少已知的多项式时间解决方案,或者可能由于缺少已知的多项式时间解而对某些问题"假设"整个NP完全属性.(实际上,写完这篇文章后,如果是这样的话,我不会感到惊讶,但无论如何我都喜欢一些古茹反馈).
我经常需要在测试机器上调试.NET二进制文件(通过测试机器,我的意思是机器上没有安装Visual Studio,它经常重新映像,它与我开发的机器不同,等等).
我喜欢Visual Studio调试器,但是对于我来说,在新映像的测试机器上安装可视化工作室只是为了调试断言或崩溃(安装时间太长,占用空间太大等)并不实用.
我真的很喜欢一个快速安装的程序,它可以进入一个正在运行的进程,让我指定符号/源代码的位置,让我直接进入调试.对于原生二进制文件,windbg工作得很好,但是我没有找到任何类似于托管二进制文件的东西.有什么建议?
(作为旁注,我知道视觉工作室远程调试功能,但由于某种原因,它似乎永远不会对我一致...我经常有连接问题)
我有一个json文件(test.json),看起来像这样:
{
"root":
{
"key":"value"
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用类似这样的东西将它加载到powershell中:
PS > $data = [System.String]::Join("", [System.IO.File]::ReadAllLines("test.json")) | ConvertFrom-Json
root
----
@{key=value}
Run Code Online (Sandbox Code Playgroud)
我希望能够枚举由json文件定义的'hashtable'之类的对象的键. 所以,理想情况下,我希望能够做到这样的事情:
$data.root.Keys
Run Code Online (Sandbox Code Playgroud)
并得到["关键"].我可以使用PowerShell中的内置哈希表来做到这一点,但是使用从json加载的哈希表来做这件事并不那么明显.
在对此进行故障排除时,我注意到ConvertFrom-json返回的字段与Powershell的哈希表的字段类型不同.例如,在内置哈希表上调用.GetType()会显示它的类型为'Hashtable':
PS > $h = @{"a"=1;"b"=2;"c"=3}
PS > $h.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Hashtable System.Object
Run Code Online (Sandbox Code Playgroud)
为我的json对象做同样的事情会产生PSCustomObject:
PS > $data.root.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True False PSCustomObject System.Object
Run Code Online (Sandbox Code Playgroud)
有没有办法将此对象转换或转换为典型的PowerShell Hashtable?
我认为标题准确地总结了我的问题,但只是详细说明一下.
我不想使用正则表达式来验证现有字符串的属性,而是使用正则表达式来生成具有某些属性的字符串.
注意:该函数不需要生成满足正则表达式的每个字符串(因为对于许多正则表达式而言,这将是无限数量的字符串).只需抽取许多有效字符串即可.
这样的事情有多可行?如果解决方案太复杂/太大,我对一般性讨论/大纲感到满意.此外,我对任何现有的程序或库(.NET)感兴趣.
我正在使用模拟器玩wp7.我想在模拟器上玩多点触控,但我的机器没有多点触控支持(它只是一个标准的鼠标/键盘设置).
他们有办法做到这一点吗?
我知道双击zoom/unzooms,但我正在寻找特定于pinch的交互.
在学习新的编程主题时,我通常遵循一种模式:我读到它,我理解它,然后我编写了几个例子来确保我真的得到它.
我已经阅读了很多关于monad的内容,我相信我理解并得到它们.我现在正处于一个阶段,我真的想编写一些monad来巩固我的理解,并真正弄清楚如何为各种类型实现bind.
问题是我无法想到许多明显的monad要实现,所以我正在寻找建议.最好是,我想要一个推荐列表,一些简单的,一些不那么容易.
我也意识到虽然monad用于在功能程序中"封装"副作用,但它们也比这更通用.因此,我希望建议包括既包含副作用又包含一些常规效果的monad.
谢谢!
(作为旁注:我将使用f#来做到这一点,但我认为这个问题可能适用于任何函数式语言).
我正在研究为托管进程创建转储文件.
我知道我可以使用windbg创建转储文件,但我想知道它们是否是我应该传递给".dump"命令的任何特殊标志,因为它是托管应用程序而不是本机应用程序.
一个相关的问题:我听说过一个名为mscordmp.exe的工具(如果你google它,你可以在网上找到它).mscordmp仍然相关吗?我无法在任何地方找到它的下载点,但我认为它可能更适合转储托管内存而不是windbg.
假设我正在运行一个带有多个输入参数的 PowerShell 脚本。命令看起来像:
psScript.ps1 -arg1 "arg1value" -arg2 "arg2value"
Run Code Online (Sandbox Code Playgroud)
有没有办法将这个确切的命令存储在脚本中的变量中,以便我可以记录它?
具体来说,我想知道分配给变量 $currentCommand 的内容:
$currentCommand = <something>
Write-Host "currently running script " $currentCommand
Run Code Online (Sandbox Code Playgroud)
这样 Write-Host 输出将是用于调用脚本的确切命令行。例如,如果脚本命令与上述相同,则输出将是:
当前正在运行的脚本 psScript.ps1 -arg1 "arg1value" -arg2 "arg2value"
我正在尝试测试html5 localStorage功能.出于某种原因,每当我尝试在刷新页面后从存储中检索值时,我只返回返回的空值.(如果我尝试在我设置它们的同一个函数中检索值,那么我可以正确地检索它们).
一件事:我正在加载的html/javascript是从本地磁盘请求的(例如,我正在使用字符串:"file:/// C:/testLocalStore.html"来浏览文件,而不是从Web服务器请求它.这会导致我看到的localStore问题吗?
(我想发布完整的代码示例,但我在格式化方面遇到了一些问题.我会很快发布它).
<html> <head> <title>test local storage</title>
<base href="http://docs.jquery.com" />
<script src="http://code.jquery.com/jquery-1.3.js"></script>
<script type="text/javascript">
function savestuff()
{
var existingData = localStorage.getItem("existingData");
if( existingData === undefined || existingData === null )
{
// first time saving a map.
existingData = $("#mapName").val();
}
else
{
existingData = existingData + "," + $("#mapName").val();
}
localStorage.setItem("existingData", existingData);
// test is non-null here, it was properly retrieved.
var test = localStorage.getItem("existingData");
}
$(document).ready( function init()
{ …Run Code Online (Sandbox Code Playgroud) 让我们说我有这个xml:
<items>
<item name="thumb">
<downloadStream>test1</downloadStream>
<downloadStream>test2</downloadStream>
<downloadStream>test3</downloadStream>
</item>
<item name="photo">
<downloadStream>test5</downloadStream>
<downloadStream>test6</downloadStream>
<downloadStream>test7</downloadStream>
</item>
</items>
Run Code Online (Sandbox Code Playgroud)
我正在尝试编写一个返回我的LINQ to XML语句:
{"test5","test6","test7"}
换句话说,它返回每个"downloadStream"节点的内部xml,其中父节点具有属性(name ="photo").
我该怎么做呢?
假设我有一个包含这样数据的通用字典(我希望这里的符号很清楚):
{"param1"=>"value1","param2"=>"value2","param3"=>"value3"}
我正在尝试使用Enumerable.Aggregate函数折叠字典中的每个条目并输出如下内容:
"/ param1 = value1;/param2 = value2;/param3 = value3"
如果我正在汇总列表,这将很容易.随着字典,我被键/值对绊倒了.
.net ×2
c# ×2
powershell ×2
debugging ×1
emulation ×1
generics ×1
graph ×1
html5 ×1
json ×1
linq ×1
linq-to-xml ×1
monads ×1
np-complete ×1
regex ×1
windbg ×1