小编max*_*kin的帖子

Knuth跳舞链接算法的数据结构

我很抱歉,如果我的问题听起来很愚蠢,因为我的数据结构理解不是很好.

我一直在阅读Knuth的Dancing Links算法,并且非常了解它基本上是如何工作的.提到跳舞链接的数据结构可视化看起来像一个包含列和行的表,每个单元格连接到它们的上,下,左和右单元格.我还读到在这个算法中使用循环双链表.

我想知道的是,如何将双链表放入带有列和行的表中?

据我所知,大多数双链表只有2个指针(向上和向下),这是否意味着我必须制作我自己的自定义链表,它有4个指针(向上,向下,向左和向右)?或者还有其他方法吗?

提前致谢.

algorithm knuth linked-list data-structures

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

将 VIM 设置为 256 色

我已经用谷歌搜索了几个小时,但找不到解决方案。我在树莓派上使用raspian,我想让colorschemes在上面工作。当我输入时,raspian 中的默认终端似乎设置为 8 种颜色

tput colors
Run Code Online (Sandbox Code Playgroud)

我得到 8。我确信一定有办法让这个术语适用于 256 色,但我不知道如何做。无论如何,我在配置文件中将 tmux 设置为支持 256 色,因此我在主目录中创建了一个 .tmux.conf 文件,并具有

set -g default-terminal "screen-256color"
Run Code Online (Sandbox Code Playgroud)

现在,如果我在 tmux 中检查 tput,我会得到 256。无论如何,我知道你可以通过添加来设置 VIM 来强制认为你支持 256 颜色

set t_Co=256
Run Code Online (Sandbox Code Playgroud)

但这似乎并没有带来实际的改变。如果我进行这个颜色测试

:runtime syntax/colortest.vim
Run Code Online (Sandbox Code Playgroud)

在 raspian 的普通终端中,我只得到 8 种不同的颜色。如果我在 tmux 上执行此操作,我会得到更多,但不是全部,因为其中一些(例如红色和浅红色)看起来仍然相同。

vim terminal color-scheme 256color raspbian

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

期望的接口名称 - 但我不明白如何实现它

我有以下课程:

public abstract class CommonEvents : DisposableObject
{
    /// <summary>
    /// Internal method for storing error messages to our event
    /// </summary>
    /// <param name="message"></param>
    /// <param name="showException"></param>
    /// <param name="exception"></param>
    public void OnError(string message, OnErrorEventsArgs.ShowExceptionLevel showException, Exception exception)
    {
        if (_onErrorEvent == null) return;

        var e = new OnErrorEventsArgs(message, showException, exception);

        _onErrorEvent(this, e);
    }

    /// <summary>
    /// Internal event handler allowing for logging of events within the class
    /// </summary>
    private EventHandler<OnErrorEventsArgs> _onErrorEvent;

    /// <summary>
    /// Public event handler …
Run Code Online (Sandbox Code Playgroud)

c# interface

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

如何查询统一类型为ghci?

可以查询ghci的统一类型吗?

例如,如果我想知道之间的统一类型(Int -> Bool)以及(a -> Bool)如何查询到ghci?

我想要解决的是Haskell第三版的练习13.23 :功能编程工艺.

你如何使用Haskell系统来检查两个类型表达式是否是统一的,如果是这样,它们的统一是什么?提示:您可以在Haskell中进行虚拟定义,其中定义的值(锆石)与其自身等同:

zircon = zircon
Run Code Online (Sandbox Code Playgroud)

像这样定义的值可以声明为您想要的任何类型.

谢谢,
塞巴斯蒂安.

haskell types unification ghci

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

Haskell,QuickCheck,伪造(错误)属性:

有没有办法伪造这个(错误的)财产:

prop :: Eq a => [a] -> Bool
prop xs = reverse xs == xs
Run Code Online (Sandbox Code Playgroud)

当我使用QuickCheck及以后的VerboseCheck时,它提供了100种不同形式:

[(),(),(),(),(),(),(),(),(),(),(),(),(),(),()]
Run Code Online (Sandbox Code Playgroud)

通过:
最终结果是:

+++ OK, passed 100 tests.
Run Code Online (Sandbox Code Playgroud)

haskell quickcheck

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

DPLL和满意度示例?

我们知道DPLL算法是回溯+单位传播+纯文字规则。

我有一个例子。有一个示例可以解决DPLL的以下可满足性问题。如果给变量分配“ 0”先于给变量分配“ 1”,那么哪个Unit Clause (UC)或哪个Pure Literal (PL)用于解决此特定示例?

{~A \/ B \/ C}, {A \/ ~B \/ C}, {A \/ B \/ ~C}, {A \/ B \/ C}
Run Code Online (Sandbox Code Playgroud)

在此示例中,使用其中两个(PL and UC)编写。为什么选择其中两个?任何的想法?

algorithm logic satisfiability sat

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

使用 postgres 将大量行从一个表移动到另一个新表的有效方法

我正在使用PostgreSQL数据库进行实时项目。其中,我有一张有 8 列的表。该表包含数百万行,因此为了从表中更快地进行搜索,我想删除该表中的旧条目并将其存储到另一个新表中。

为此,我知道一种方法:

  • 首先选择一些行
  • 创建新表
  • 将此行存储在该表中
  • 比从主表中删除。

但是时间太长,效率不高。

所以我想知道在 postgresql 数据库中执行此操作的最佳方法是什么?

Postgresql 版本:9.4.2.
大约行数:8000000
我想移动行:2000000

postgresql postgresql-performance

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

在某些操作之后将光标放在所选块的末尾

我经常遇到几个例子.

缩进一些代码

例如,我想将代码块放在if语句中:

puts("hello");
puts("world");
Run Code Online (Sandbox Code Playgroud)

我输入if (pid > 0) {之前的第一线,然后按Esc,j,Shift+v,j,>:

if (pid > 0) {
  puts("hello");
  puts("world");
Run Code Online (Sandbox Code Playgroud)

现在游标位于第一个的beginnig puts并且要进入右括号我需要一个额外j的东西去到缩进块的末尾.

粘贴块并添加到它的末尾

几乎相同的例子.当提取一些代码来运行时,在粘贴它之后p我需要在结尾附加return语句或结束括号.如果我很幸运,在粘贴块之后会有空行,我可以用}它跳到那里,但情况并非总是如此.

所以问题是如何在对其执行某些操作(粘贴,缩进等)后跳转到所选块的末尾?

vim

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

Gstreamer:如何在一个窗口中获取同一视频流的三个副本?

我正在尝试重现"没有计算机的分形",而是使用计算机而不是三台投影仪.我认为使用gstreamer应该很简单:只需用tee从相机复制流,然后用视频混合器将三张相同的图片放在一起.

这里我使用' videotestsrc pattern = 1 '作为我希望复制的流,并且' videotestsrc pattern ="black" '作为整个屏幕的背景.

#!/bin/bash
gst-launch -v \
    videotestsrc pattern=1 ! video/x-raw-yuv,width=200,height=200 \
        ! tee name=t \
    videomixer name=mix \
          sink_0::xpos=0   sink_0::ypos=0 \
          sink_1::xpos=100 sink_1::ypos=0 \
          sink_2::xpos=200 sink_2::ypos=200 \
          sink_3::xpos=0   sink_3::ypos=200 \
        ! ffmpegcolorspace ! xvimagesink \
    videotestsrc pattern="black" ! video/x-raw-yuv,width=400,height=400 \
        ! mix.sink_0 \
    t. ! queue ! mix.sink_1 \
    t. ! queue ! mix.sink_2 \
    t. ! queue ! mix.sink_3 \
Run Code Online (Sandbox Code Playgroud)

问题是我只得到两个副本:一个对应于sink_1,另一个对应于sink_2.如果我交换最后两行,那么我只得到sink_1和sink_3.

那么问题是如何显示所有三个副本?

gstreamer

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

在内存中"保存"数据映射

我有三个数据结构定义为这样的,其中S,LL,M,和Object,表示Set,ListLike,Map,和ByteString,分别为:

nouns :: IO [Object]
nouns = liftM LL.words $ B.readFile "nounlist.txt"

obj :: IO ObjectSet
obj =  liftM S.fromList nouns

actions :: IO ActionMap
actions = do
  n <- nouns
  let l = foldl' (\z x -> (x,Sell):(x,Create):z) [] n
  return $ M.fromList $
    (\(x,y) -> ((x, Verb y []), Out (Verb y []) x)) <$> l
Run Code Online (Sandbox Code Playgroud)

现在我有一个函数将未评估的Set和Map绑定到变量ao.一旦进入query …

multithreading haskell memory-management haskell-snap-framework

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

在haskell中声明函数中的字典

我正在编写代码

import Data.Map

main = print $ scores ["APPLE","bbd","cat"]
score :: String -> Int
score = sum . map latterScore

scores :: [String] -> [Int]
scores arrayOfStrings = [ score word | word <- arrayOfStrings]

myLookup :: Char -> Int
myLookup inputChar = x <- Data.Map.fromList([("A",1), ("B",3), ("C", 3), ("E", 1), ("D", 2), ("G", 2), ("F", 4), ("I", 1), ("H", 4), ("K", 5), ("J", 8), ("M", 3), ("L", 1), ("O", 1), ("N", 1), ("Q", 10), ("P", 3), ("S", 1), ("R", …
Run Code Online (Sandbox Code Playgroud)

haskell

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

正确的RESTful动词

我有一个带条件操作的资源:

/foos/{id}/authorize
/foos/{id}/cancel
Run Code Online (Sandbox Code Playgroud)

这个想法是授权会将资源的状态从保存(默认)更改为授权(由第三方应用程序).授权可以从远程部分返回错误或者可以被授权.一旦授权,资源就无法再次被授权,因此这不是可以一次又一次调用的动作.

撤消授权资源时会发生取消.一旦取消,资源将永久保留.

考虑到此操作不安全并且不能被视为幂等因为第二次调用会返回"资源已被取消"这样的错误并且同时我不创建这种操作的RESTful世界中正确的动词是什么一个新资源,只是在已知资源中进行状态更改?

rest

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