小编Mar*_*rot的帖子

最大化直方图下的矩形区域

我有一个整数高度和恒定宽度1的直方图.我想在直方图下最大化矩形区域.例如:

 _
| |
| |_ 
|   |
|   |_
|     |
Run Code Online (Sandbox Code Playgroud)

使用col1和col2,答案是6,3*2.

O(n ^ 2)蛮力对我来说很清楚,我想要一个O(n log n)算法.我试图按照最大增加子序列O(n log n)算法的方式来思考动态编程,但我没有继续前进.我应该使用分而治之的算法吗?

PS:如果没有这样的解决方案,请求具有足够声誉的人删除分而治之标签.

在mho评论之后:我的意思是完全适合的最大矩形区域.(感谢j_random_hacker澄清:)).

algorithm

62
推荐指数
5
解决办法
5万
查看次数

用于从RTF字符串中提取文本的正则表达式

我正在寻找一种从RTF字符串中删除文本的方法,我找到了以下正则表达式:

({\\)(.+?)(})|(\\)(.+?)(\b)
Run Code Online (Sandbox Code Playgroud)

但是,结果字符串有两个直角括号"}"

之前: {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0 MS Shell Dlg 2;}{\f1\fnil MS Shell Dlg 2;}} {\colortbl ;\red0\green0\blue0;} {\*\generator Msftedit 5.41.15.1507;}\viewkind4\uc1\pard\tx720\cf1\f0\fs20 can u send me info for the call pls\f1\par }

后: } can u send me info for the call pls }

有关如何改进正则表达式的任何想法?

编辑: 一个更复杂的字符串,如这个不起作用: {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0 MS Shell Dlg 2;}} {\colortbl ;\red0\green0\blue0;} {\*\generator Msftedit 5.41.15.1507;}\viewkind4\uc1\pard\tx720\cf1\f0\fs20 HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\test\\myapp\\Apps\\\{3423234-283B-43d2-BCE6-A324B84CC70E\}\par }

regex rtf

38
推荐指数
5
解决办法
5万
查看次数

如何反序列化oData JSON?

我正在尝试使用Northwind OData服务:

http://services.odata.org/V3/OData/OData.svc/Products?$format=json

并将其反序列化为一组产品:

    using (var client = new HttpClient())
    {
        HttpResponseMessage response = await client.GetAsync(new Uri(url));
        ObservableCollection<Product> products = await response.Content.ReadAsAsync<ObservableCollection<Product>>();
    }
Run Code Online (Sandbox Code Playgroud)

但是序列化程序似乎并不喜欢那odata.metadata部分和事实,那里有2 odata.type条记录(不确定它们是什么).

是否有捷径可寻?

c# json odata

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

神经网络和算法,预测过去的未来结果

我正在研究一种算法,我给它一些输入,我给它们输出,并给出输出3个月(给或拿)我需要一种方法来查找/计算可能是未来的输出.
现在,给出的这个问题可能与证券交易所有关,我们给出了证明约束和某些结果,我们需要找到下一个.
我偶然发现神经网络股票市场的预测,你可以谷歌它,或者你可以在这里,这里这里阅读它.

要开始制作算法,我无法弄清楚层的结构应该是什么.
给定的约束是:

  • 输出始终为整数.
  • 输出始终在1到100之间.
  • 没有确切的输入,就像股票市场一样,我们只知道股票价格会在1和100之间波动,所以我们可能(或不是)认为这是唯一的输入.
  • 我们有过去3个月(或更长时间)的记录.

现在,我的第一个问题是,我需要输入多少个节点?

输出只有一个,很好.但正如我所说,我应该为输入层采用100个节点(假设股票价格总是整数,并且总是btw 1和100?)

隐藏层怎么样?那里有多少个节点?比方说,如果我在那里采用100个节点,我认为这不会对网络进行太多训练,因为我认为对于每个输入我们还需要考虑所有先前的输入.

比如说,我们在第4个月的第1天计算输出,我们应该在隐藏/中间层有90个节点(为了简单起见,想象每个月是30天).现在有两种情况

  • 我们的预测是正确的,结果与我们预测的相同.
  • 我们的预测失败了,结果与我们的预测不同.

无论情况如何,现在当我们计算第4个月第2天的输出时,我们不仅需要那些90个输入,而且还需要最后的结果(而不是预测,它是否相同!)所以我们现在我们的中间/隐藏层有91个节点.

依此类推,它每天都会增加节点数量,AFAICT.

所以,我的另一个问题是,如果动态变化,我如何定义/设置隐藏/中间层中的节点数.

我的最后一个问题是,有没有其他特殊的算法(对于这种事物/东西),我不知道?我应该使用而不是搞乱这个神经网络的东西?

最后,有什么东西,我可能会失踪,可能会导致我(而不是我正在做的算法)预测输出,我的意思是任何警告,或任何可能使我错过的东西,我可能会失踪?

algorithm prediction neural-network

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

为什么不能将nullables声明为const?

[TestClass]
public class MsProjectIntegration {
    const int? projectID = null;
    // The type 'int?' cannot be declared const
    // ...
}
Run Code Online (Sandbox Code Playgroud)

为什么我不能拥有const int?

编辑:我想要一个可空的int作为const的原因是因为我只是用它来从数据库加载一些示例数据.如果它为null我只是在运行时初始化样本数据.这是一个非常快速的测试项目,显然我可以使用0或-1,但int?感觉就像我想做的那样正确的数据结构.readonly似乎是要走的路

c# null nullable const

14
推荐指数
3
解决办法
2720
查看次数

PHP中的MD5实现 - 我哪里出错了?

我知道这可能是一个漫长的过程,但有人可能会告诉我在PHP中当前实现的MD5算法出错了吗?我似乎无法弄清楚它有什么问题.

它返回一个32个字符的十六进制字符串(25%的时间它产生的字符串少于32个字符),但它没有产生与内置MD5函数相同的32个字符.

非常感谢你.


<?php

function MD($string){
$a = "67452301";
$b = "EFCDAB89";
$c = "98BADCFE";
$d = "10325476";

$words = init($string);

for($i = 0; $i <= count($words)/16-1; $i++){
    $A = $a;
    $B = $b;
    $C = $c;
    $D = $d;

    /* ROUND 1 */
    FF ($A, $B, $C, $D, $words[0 + ($i * 16)], 7, "d76aa478"); 
    FF ($D, $A, $B, $C, $words[1 + ($i * 16)], 12, "e8c7b756"); 
    FF ($C, $D, $A, $B, $words[2 + ($i * 16)], 17, "242070db"); …
Run Code Online (Sandbox Code Playgroud)

php md5

12
推荐指数
2
解决办法
4162
查看次数

保存Typescript文件时,Visual Studio 2015 RC不会创建源图

我是打字稿的新手,我在最新的Visual Studio 2015 RC中试用了它.

目前,当我保存ts文件时,它会自动编译typescript文件并创建底层的js文件(当你展开它时很好地在.ts文件下面).但是,没有源映射文件,因此在调试时我无法在visual studio中的打字稿中找到任何断点(无论使用IE还是Chrome金丝雀).

有没有办法启用它所以它会在保存时生成源图文件?从搜索周围看来,许多编译器选项曾经在移动或不可用的Web要素中(但是?):

旧选项对话框的屏幕截图

typescript visual-studio-2015

12
推荐指数
2
解决办法
4043
查看次数

如何用pyparsing解析缩进和dedents?

这是Python语法的一个子集:

single_input: NEWLINE | simple_stmt | compound_stmt NEWLINE

stmt: simple_stmt | compound_stmt
simple_stmt: small_stmt (';' small_stmt)* [';'] NEWLINE

small_stmt: pass_stmt
pass_stmt: 'pass'

compound_stmt: if_stmt
if_stmt: 'if' test ':' suite ('elif' test ':' suite)* ['else' ':' suite]

suite: simple_stmt | NEWLINE INDENT stmt+ DEDENT
Run Code Online (Sandbox Code Playgroud)

(您可以在Python SVN存储库中阅读完整语法:http://svn.python.org/.../Grammar)

我试图用这个语法在Python中生成Python的解析器.我遇到的问题是如何将这些INDENTDEDENT令牌表达为pyparsing对象.

以下是我实现其他终端的方法:

import pyparsing as p

string_start = (p.Literal('"""') | "'''" | '"' | "'")
string_token = ('\\' + p.CharsNotIn("",exact=1) | p.CharsNotIn('\\',exact=1))
string_end = p.matchPreviousExpr(string_start)

terminals = …
Run Code Online (Sandbox Code Playgroud)

python indentation parser-generator pyparsing

10
推荐指数
1
解决办法
3416
查看次数

在F#中计算表达式中`while`循环的作用是什么?

如果定义While构建器对象的方法,则可以while计算表达式中使用-loops .该While方法的签名是:

member b.While (predicate:unit->bool, body:M<'a>) : M<'a>
Run Code Online (Sandbox Code Playgroud)

为了比较,该For方法的签名是:

member b.For (items:seq<'a>, body:unit->M<'a>) : M<'a>
Run Code Online (Sandbox Code Playgroud)

您应该注意到,在While-method中,body是一个简单类型,而不是方法中的函数For.

你可以let在计算表达式中嵌入一​​些其他语句,比如函数调用,但是那些不可能在while-loop中不可能执行多次.

builder {
    while foo() do
      printfn "step"
      yield bar()
}
Run Code Online (Sandbox Code Playgroud)

为什么while-loop不会被执行多次,而只是重复?为什么与for循环有显着差异?更好的是,是否有一些在计算表达式中使用while循环的策略?

syntax f# computation-expression

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

用于解析SQL语句的正则表达式

我有一个IronPython脚本,它针对SQL Server数据库执行一堆SQL语句.语句是大字符串,实际上包含多个语句,由"GO"关键字分隔.当它们从sql管理工作室和其他一些工具运行时可以工作,但不能在ADO中运行.所以我使用2.5"re"模块拆分字符串,如下所示:

splitter = re.compile(r'\bGO\b', re.IGNORECASE)
for script in splitter.split(scriptBlob):
    if(script):
        [... execute the query ...]
Run Code Online (Sandbox Code Playgroud)

在罕见的情况下,这会打破注释或字符串中的单词"go".如何解决这个问题?即正确地将此字符串解析为两个脚本:

-- this is a great database script!  go team go!
INSERT INTO myTable(stringColumn) VALUES ('go away!')
/*
  here are some comments that go with this script.
*/
GO
INSERT INTO myTable(stringColumn) VALUES ('this is the next script')
Run Code Online (Sandbox Code Playgroud)

编辑:

我搜索了更多,发现了这个SQL文档:http: //msdn.microsoft.com/en-us/library/ms188037(SQL.90).aspx

事实证明,GO必须按照自己的方式提出一些答案.然而,它后面可以跟一个"count"整数,它实际上会多次执行语句批处理(之前有人实际使用过它),然后可以在同一行上单行注释(但不是多行,我测试了这个.)所以神奇的正则表达式看起来像:

"(?m)^\s*GO\s*\d*\s*$"
Run Code Online (Sandbox Code Playgroud)

除此之外不考虑:

  • 最后可能是单行注释("--"后跟换行符之外的任何字符).
  • 整条线都在一个更大的多线评论中.

我不关心捕获"计数"参数并使用它.现在我有一些技术文档,我非常接近写这个"规范",而且再也不用担心了.

python regex

6
推荐指数
3
解决办法
4149
查看次数