小编Vla*_*kov的帖子

OEIS A002845:2 ^ 2 ^ ... ^ 2采用的不同值的数量(以所有可能的方式插入n 2和括号)

我正在寻找一个合理快速的算法来计算OEIS序列A002845的术语.让我在这里重申它的定义.

设^表示取幂运算符.考虑具有n 2的形式2 ^ 2 ^ ... ^ 2的表达式,其中括号以所有可能的方式插入(可能的括号的数量由加泰罗尼亚数字给出).这些表达式中的一些将具有相同的值,例如(2 ^ 2)^ 2 = 2 ^(2 ^ 2).我们感兴趣的是给定n的不同值的数量.

通过直接计算这些表达式,有明显的暴力解决方案,但很明显,即使对于相对较小的n,所需的时间和空间也会迅速超过所有合理的限制.我对这个问题的多项式时间解决方案很感兴趣.

algorithm numbers sequence combinatorics exponent

25
推荐指数
1
解决办法
868
查看次数

可以调用Assembly.Load(byte [])来引发AppDomain.AssemblyResolve事件吗?

假设我有一个AppDomain.AssemblyResolve事件处理程序,在处理程序中我构造一个字节数组并调用该方法Assembly.Load(byte[]).此方法本身是否会AssemblyResolve再次引发事件,并导致我的处理程序重新进入?

我的问题不仅限于可以使用C#编译器生成的程序集,它们可以包含CLR支持的abritrary元数据和可执行代码.

我做了一些实验,发现时没有发现任何情况.我试图加载需要额外引用的程序集,尝试将CAS属性添加到加载的程序集,其解码需要另一个程序集,尝试使用模块初始化程序(全局.cctor方法)加载程序集.在任何情况下,我都没有观察到AssemblyResolve要从Assembly.Load(byte[])方法内部引发的事件,只有在某些代码稍后尝试访问加载的程序集中的类型,方法或属性时才会发生.但我可以在这里遗漏一些东西.

.net c# reflection clr .net-assembly

20
推荐指数
1
解决办法
1393
查看次数

一个组合框,提供可调整大小的文件名完成列表和带有历史记录的下拉列表

我需要创建一个组合框

  • 提供可调整大小的文件名完成列表和
  • 保留先前输入的历史记录并将其显示在下拉列表中

类似于Windows中的"运行"对话框.

可调整大小的完成清单:

文件名完成

下拉列表:

下拉列表

在WinForms,WPF或任何开源库中是否准备好了适当的控件?或者我需要使用低级控件手动实现它?

先感谢您!

wpf combobox autocomplete winforms drop-down-menu

15
推荐指数
1
解决办法
1073
查看次数

如何复制某些文件(没有文件夹层次结构),但不要覆盖现有文件?

我需要将所有*.doc文件(但不是名称匹配的文件夹*.doc)从网络文件夹\\server\source(包括所有嵌套文件夹中的文件)复制到本地文件夹C:\destination而不保留嵌套文件夹层次结构(即所有文件应直接进入,C:\destination并且不应嵌套文件夹创建于C:\destination).如果有多个文件具有相同名称的不同子文件夹\\server\source,则只应复制第一个文件 ,然后不要覆盖 - 之后发现的所有冲突文件都应该被跳过(可能有很多这样的情况,跳过的文件不应该通过网络传输,否则需要花费太多时间).这是我尝试在PowerShell中实现它:

cp \\server\source\* -Recurse -Include *.doc -Container:$false -Destination C:\destination
Run Code Online (Sandbox Code Playgroud)

此命令至少存在两个问题:

  • 它复制名称匹配的文件夹*.doc.
  • 如果名称冲突,以后找到的任何文件都将通过网络传输并覆盖前一个文件.

你能建议如何解决这些问题吗?
使用实现copy,xcopy,robocopy,cscript或者*.bat,*.cmd也欢迎.
本地操作系统是Windows 8,文件系统是NTFS.

powershell copy file overwrite flatten

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

多序列的懒惰笛卡尔积(序列序列)

你能建议更简单,更清晰的方式来编写这个函数吗?

let cartesian_product sequences = 
    let step acc sequence = seq { 
        for x in acc do 
        for y in sequence do 
        yield Seq.append x [y] }
    Seq.fold step (Seq.singleton Seq.empty) sequences 
Run Code Online (Sandbox Code Playgroud)

f# sequences

8
推荐指数
1
解决办法
532
查看次数

在 Windows 10 上将 .NET Core 控制台应用程序切换为全屏模式

F11在 Windows 10 中,可以通过按或Alt+将控制台应用程序切换到全屏模式Enter。请注意,这不是 Windows Vista 之前支持的纯文本 VGA 全屏模式。尽管在此模式下没有可见的任务栏或标题栏,但其他窗口(或“开始”菜单)可以在其顶部弹出,并且它是 Windows GUI 的一部分。

我有一个在 Windows 10 上运行的 .NET Core / C# 控制台应用程序。当我需要将其切换到全屏模式时,我使用 P/Invoke 将击键发送F11到我自己的窗口,然后将其置于前台。显然,如果应用程序之前已经手动切换到全屏模式,它不会执行我想要的操作,但我可以尝试通过对窗口大小进行一些计算来检测它来解决它。

我正在寻找一种不那么迂回的方法来做到这一点。我想知道:

  • 如何从控制台应用程序检查它当前是否处于全屏模式?
  • 如何将控制台应用程序切换到全屏模式或从全屏模式切换到全屏模式?

c# fullscreen console-application windows-10 .net-core

8
推荐指数
1
解决办法
1629
查看次数

伪随机的一对一int32-> int32函数

我正在寻找一个int32-> int32函数

  • 双向(一对一对应)
  • 便宜至少在一个方向上计算
  • 将增加的序列0,1,2,3 ......转换成一个看起来像一个好的伪随机序列的序列(当参数变化较小时,〜半位翻转,没有明显的模式)

random algorithm integer bijection

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

如何将控制台应用程序(如MSBuild或PowerShell)的彩色输出转换为保留颜色的HTML格式?

当我运行某些控制台应用程序(特别是MSBuild或PowerShell)时,它们会生成包含不同颜色文本的输出(用于警告,错误等).有时我需要将其保存以供将来分析,或通过电子邮件发送.我只能从控制台复制纯文本,或者将程序输出重定向到文件,但这样所有颜色都会丢失.有没有办法以HTML或RTF等颜色保留格式捕获控制台应用程序的输出?

html msbuild powershell colors console-application

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

如何实现通用列表类型?

假设您正在开发一种用于脚本编写,原型设计,作为应用程序自动化的宏语言或交互式计算器的语言.它是动态类型的,内存管理是隐含的,基于垃圾收集.在大多数情况下,您不希望用户使用高度优化的算法或精心挑选的微调数据结构.您希望提供平均性能良好的通用列表类型.它必须支持所有类型的操作:迭代,索引随机访问,前置和附加元素,插入,删除,映射,过滤,成员资格测试,连接,拆分,反转,排序,克隆,提取段.它可以用于少量和大量元素(但您可以假设它适合物理内存).它仅用于单线程访问,您无需关心线程安全性.您希望用户使用此通用列表类型,无论他们的场景或使用模式是什么.一些用户可能希望将其用作稀疏数组,其中大多数元素具有一些默认值(例如0),并且只有少数元素具有非默认值.

您会选择哪种实施方案?

我们假设您有能力投入大量的开发工作,因此解决方案不一定非常简单.例如,您可以实现内部数据组织的不同方式,并根据元素数量或使用模式在它们之间切换.高性能是一个比减少内存消耗更重要的目标,因此如果它能够赢得您的性能,您可以承受一些内存开销.

algorithm list data-structures

6
推荐指数
0
解决办法
64
查看次数

LogonSessionId帐户在新证书中分配了读访问权限?

我有一个问题(希望)有人能说清楚.我正在编写一个Powershell脚本,将证书导入本地计算机存储,并将Everyone组读取权限分配给证书上的私钥.

现在,我确实有一个可以完成此任务的工作脚本,但我注意到我有一个名为"LogonSessionId_0_some-random-number"的帐户,它为私钥上的ACL分配了读取权限,如下图所示:

ACL中的LogonSessionID

起初我以为这是我的脚本可能这样做,但当我手动导入证书时,我得到相同的结果.

有没有人见过这个或知道为什么会这样?这个帐户究竟是什么以及为什么要分配权限?我试图在这方面寻找一些答案,但是已经做得很短.

不确定它是否有帮助,但这是我的代码中导入证书并分配权限的部分:


    $sslCert = gci Cert:\LocalMachine\My | WHERE {$_.Subject -match $getCerts}
    $sslCertPrivKey = $sslCert.PrivateKey
    $privKeyCertFile = Get-Item -path "$ENV:ProgramData\Microsoft\Crypto\RSA\MachineKeys\*"  | WHERE {$_.Name -eq $sslCertPrivKey.CspKeyContainerInfo.UniqueKeyContainerName}
    $privKeyAcl = (Get-Item -Path $privKeyCertFile.FullName).GetAccessControl("Access")
    $permission = "Everyone","Read","Allow"
    $accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule $permission
    $privKeyAcl.AddAccessRule($accessRule)
    Set-Acl $privKeyCertFile.FullName $privKeyAcl

我正在使用Windows 10 Pro.

非常感谢任何帮助/见解!

windows permissions powershell acl certificate

6
推荐指数
1
解决办法
1494
查看次数

如何在类型T的单个变量(字段或ref参数)上创建长度为1的Span <T>

这个问题是关于类型Span<T>RealOnlySpan<T>.NET Core的。该文档介绍了如何在阵列,阵列段,堆栈分配或非托管内存上创建跨区。在某些情况下,我想在单个变量(字段,ref参数或ref局部变量)上创建长度为1的跨度,以将其传递给可以处理任意跨度的API。我怎样才能做到这一点?

我想可能会有一个构造函数Span<T>.Span(ref T),但显然没有。将变量复制到数组中并在该数组上创建跨度并不能解决问题,因为跨度的任何修改都不会反映在原始变量上。

c# memory .net-core

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