小编k_g*_*k_g的帖子

具有O(n log n)时间和O(1)空间复杂度与O(n)时间和O(n)空间复杂度的算法

我很想知道哪种算法更好:

  • 具有O(n log n)时间和O(1)空间复杂度的算法
  • 具有O(n)时间和O(n)空间复杂度的算法

在O(n long n)时间和恒定空间中求解的大多数算法可以在O(n)时间内通过在空间方面支付罚分来求解.哪种算法更好?我如何决定这两个参数?

示例:数组对总和

  1. 可以通过排序在O(n logn)时间内解决
  2. 可以在O(n)时间使用散列映射来解决,但是使用O(n)空间

algorithm runtime time-complexity space-complexity

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

InstallShield - 需要在管理模式下运行自定义操作.exe

在InstallShield中使用自定义操作,我正在尝试在安装期间运行.exe文件以注册第三方服务..exe需要以管理员模式运行.这将需要在UI模式或静默模式下运行.这是一组通过我们的安装程序部署的第三方文件,但我需要在此过程中执行一个.

我尝试从"Install Exec Sequence""After Install Files"执行它(并尝试"After Publish Features").在这种情况下,我得到以下对话框:

在此输入图像描述

我也尝试过"Admin Exec Sequence""After InstallFiles",但这似乎根本没有运行.该程序将安装,但我需要手动运行命令以使工作正常.

我还将In-Script执行设置为"延迟执行"并将返回处理设置为"同步(检查退出代码)".

那么,我可以就这应该执行的地方使用一些指导?安装Exec序列?Admin Exec序列?在哪个阶段?
在哪一点上程序写出并可以执行?

windows-installer installshield

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

EclipseFP根本不工作

我最近使用这里的说明在我的计算机上安装了Haskell和EclipseFP .我得到了安装插件.

不幸的是,插件似乎有一个内部问题,并在我启动Eclipse时输出以下错误(如"错误日志"中所示).

eclipse.buildId=4.4.0.I20140606-1215
java.version=1.8.0_20
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
Framework arguments:  -product org.eclipse.epp.package.standard.product -product org.eclipse.epp.package.standard.product
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.standard.product -data <PATH TO WORKSPACE> -product org.eclipse.epp.package.standard.product

org.eclipse.equinox.registry
Error
Thu Apr 16 19:37:20 PDT 2015
Plug-in net.sf.eclipsefp.haskell.ui was unable to load class net.sf.eclipsefp.haskell.ui.decorators.ProblemsLabelDecorator.

java.lang.ClassNotFoundException: An error occurred while automatically activating bundle net.sf.eclipsefp.haskell.ui (339).
    at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:116)
    at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:531)
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:324)
    at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:311)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:386)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:336)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:328)
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160)
    at …
Run Code Online (Sandbox Code Playgroud)

eclipse haskell eclipse-plugin

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

分解构造函数coq的相等性

通常在Coq我发现自己做了以下事情:我有证据目标,例如:

some_constructor a c d = some_constructor b c d
Run Code Online (Sandbox Code Playgroud)

我真的只需要证明,a = b因为其他一切都是相同的,所以我这样做:

assert (a = b).
Run Code Online (Sandbox Code Playgroud)

然后证明那个subgoal

rewrite H.
reflexivity.
Run Code Online (Sandbox Code Playgroud)

完成证明.

但是,在我的证据的底部悬挂那些似乎是不必要的混乱.

在Coq中是否有一个通用的策略来获取构造函数的相等性并将其分解为构造函数参数的相等性,有点像是一个split但是对于平等而不是连接.

coq coq-tactic

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

如何在IPython提示符中重用现有的sys.ps1格式化程序?

我有一个f为python生成PS1提示的函数,设置如下:

sys.ps1 = f
Run Code Online (Sandbox Code Playgroud)

按照文档的说明,我最终得到以下结果:

from IPython.terminal.prompts import Prompts, Token
from IPython import get_ipython
class MyPrompt(Prompts):
 def in_prompt_tokens(self, cli=None):
     return [(Token, f())]
ipython = get_ipython()
ipython.prompts = MyPrompt(ipython)
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用,因为f返回带有颜色代码的字符串,python直接打印到终端,导致彩色提示,而ipython打印件转义,导致一堆转义码.

我知道我可以重新配置f使用ipython的内部着色方案,但有没有办法强制它使用shell的颜色代码而不转发它们?

虽然f是一个考虑到有关其环境的信息的函数,但这里有一个实现,它在一种情况下显示其输出(它使用了后面的colorama,所以这只是unix系统上的ouptut).

def f():
    return '\x01\x1b[1m\x1b[33m\x02kavi\x01\x1b[0m\x02 \x01\x1b[38;5;214m\x02/home\x01\x1b[38;5;82m\x02/kavi\x01\x1b[38;5;28m\x02\x01\x1b[0m\x02 \x01\x1b[38;5;38m\x02master\x01\x1b[0m\x02 $ '
Run Code Online (Sandbox Code Playgroud)

python terminal ipython

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

如何在 Coq 中添加到等式的两边

这似乎是一个非常简单的问题,但我找不到任何有用的东西。

我有声明

n - x = n
Run Code Online (Sandbox Code Playgroud)

并想证明

(n - x) + x = n + x
Run Code Online (Sandbox Code Playgroud)

我一直无法找到什么定理允许这样做。

coq coq-tactic

5
推荐指数
1
解决办法
1698
查看次数

我如何说服Coq我的函数实际上是递归的?

我正在尝试在Coq中编写一个程序来解析一个相对简单的无上下文语法(一种括号),我的通用算法是让解析器可能返回字符串的其余部分.例如,解析"++]>><<"应该返回CBTerminated [Incr Incr] ">><<",然后,解析"[++] >> <<"的解析器将能够获取">> <<"并继续.

显然,字符串较小,但令人信服的Coq是另一回事.它给了我错误

parseHelper的递归定义是不正确的.[...]递归调用parseHelper的主要参数等于"rest"而不是"rest".

我认为这意味着它不相信它确信rest' < input的方式rest < input.(<意思是"小于").

我想到的是返回一个要跳过多少个字符的计数,但这似乎相当不优雅和不必要.

Require Import Coq.Strings.String.
Require Import Coq.Strings.Ascii.
Require Import Coq.Lists.List.
Require Import ZArith.

Open Scope char_scope.
Open Scope list_scope.

Notation " [ ] " := nil (format "[ ]") : list_scope.
Notation " [ x ] " := (cons x nil) : list_scope.
Notation " [ x ; y ; .. ; z ] " := …
Run Code Online (Sandbox Code Playgroud)

recursion termination coq

4
推荐指数
1
解决办法
425
查看次数

合并匹配 Coq 中的重复案例

我多次遇到这个问题:我在 Coq 中有一个证明状态,其中包括等式两边相同的匹配项。

是否有一种标准方法可以将多个匹配重写为一个?

例如。

match expression_evaling_to_Z with
    Zarith.Z0 => something
    Zartih.Pos _ => something_else
    Zarith.Neg _ => something_else
end = yet_another_thing.
Run Code Online (Sandbox Code Playgroud)

如果我破坏,expresion_evaling_to_Z我会得到两个相同的目标。我想找到一种方法来实现其中一个目标。

coq coq-tactic

4
推荐指数
1
解决办法
526
查看次数

字符串作为决策树/随机森林中的特征

我是机器学习的新手!

现在我在决策树/随机森林的应用上做了一些问题.我试图适应一个问题,其中包含数字和字符串(如国家/地区名称)作为功能.现在库,scikit-learn只将数字作为参数,但我想注入字符串以及它们带有大量知识.

我如何处理这种情况,我可以通过某种机制(如python中的散列)将字符串转换为数字.但我想知道在决策树问题中如何处理字符串的最佳实践.

machine-learning decision-tree scikit-learn

3
推荐指数
1
解决办法
4824
查看次数

GHC分析文件和图表是矛盾的

我写了一个Eratosthenes程序的筛子,ST.Strict当我看到它占用了大量的内存时,我正在剖析它:

Sun Jul 10 18:27 2016 Time and Allocation Profiling Report  (Final)

   Primes +RTS -hc -p -K1000M -RTS 10000000

total time  =        2.32 secs   (2317 ticks @ 1000 us, 1 processor)
total alloc = 5,128,702,952 bytes  (excludes profiling overheads)
Run Code Online (Sandbox Code Playgroud)

(其中10 ^ 7)是我要求它生成的素数.

奇怪的是,分析图表显示了完全不同的东西:

剖析图

我在其中一张图中误读了什么吗?或者这些工具之一有什么问题吗?

作为参考,我的代码是

{-# LANGUAGE BangPatterns #-}

import Prelude hiding (replicate, read)
import qualified Text.Read as T
import Data.Vector.Unboxed.Mutable(replicate, write, read)
import Control.Monad.ST.Strict
import Data.STRef
import Control.Monad.Primitive

import Control.Monad

import System.Environment

main = print . length …
Run Code Online (Sandbox Code Playgroud)

profiling haskell ghc

3
推荐指数
1
解决办法
65
查看次数

用计时器绘图不起作用

我在使用Java绘图时遇到问题.我认为我的代码是正确的,但是当我用计时器循环它时,它不会打印任何东西.我想每秒重复一次doDrawing(g)方法.现在它只打印文本prom system.out但没有绘图.

package src;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Calendar;
import javax.swing.JPanel;
import javax.swing.Timer;

public class surface extends JPanel{

private void doDrawing(Graphics g){
    Graphics2D g2d = (Graphics2D) g;
    g2d.setColor(Color.black);

    //souradnice stredu ciferniku
    final int sx = 250;
    final int sy = 250;

    // inicializace promennych
    int uhel = 0;
    int delka = 150;
    int xHodina,xMinuta,xSekunda,
        yHodina,yMinuta,ySekunda;


    // získání aktuálního ?asu
     int HOUR = Calendar.getInstance().get(Calendar.HOUR);
     int MINUTE = Calendar.getInstance().get(Calendar.MINUTE) + 1;
     int SECOND = Calendar.getInstance().get(Calendar.SECOND) …
Run Code Online (Sandbox Code Playgroud)

java swing timer awt draw

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

重建'this'变通方法

我正在尝试创建一个简单的国际象棋程序,我在实现典当促销时遇到了一个小问题.我有一个抽象类和6个类(King,Queen,Rook,Knight,Bishop和Pawn)扩展它.因此,当一个棋子到达棋盘的另一端时,我希望他改变让我们说皇后.

最简单的方法是做这样的事情:

Public class Pawn extends Piece {
...
  @Override
  public void move(int toCol, int toRow) {
    this.col = toCol; this.row = toRow;
    if (toRow == endRow)
      this = (Queen)this
  }
}
Run Code Online (Sandbox Code Playgroud)

这显然是不可能的,因为人们根本无法分配给.

所以我需要检测促销并从外部投射.但由于某些原因,我存储了两次配件.作为一个2D阵列的片断,但也作为每个玩家的2个片段列表.这意味着我需要在列表中找到pawn并将其删除,然后添加具有相同坐标的新queen并将其分配给board [col] [row].

我想知道是否有更好的方法来做到这一点.不知何故从"内部"改变对象的类.

java inheritance casting chess

0
推荐指数
1
解决办法
105
查看次数