小编Chr*_*ung的帖子

使用stl随机化数组条目的简便方法?

我可以使用stl,简单和简单的方式对int*数组进行排序

std::sort(myarray, myarray + size);
Run Code Online (Sandbox Code Playgroud)

是否有任何相同的简单方法来随机化它?

谢谢

c++ arrays random stl

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

使用Xcode的condition_variable抛出system_error-很好的VStudio

每次在Xcode中进行编译时,每次尝试等待condition_variable时都会收到错误消息。错误是“以类型为std :: __ 1 :: system_error的未捕获异常终止:条件变量等待失败:参数无效”

一切在Visual Studio 2013中都可以正常工作。如果我决定不等待多个线程的相同condition_variable,则代码可以正常工作。r

好的,代码。

main.cpp:

#include "ThreadPool.h"

int main(int argc, const char * argv[])
{
    ThreadPool pool;
    for (int i = 0; i < 10; ++i)
        pool.sendWork();

    std::this_thread::sleep_for(std::chrono::milliseconds(50000));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

线程池

#pragma once
#include <condition_variable>
#include <vector>
#include <thread>

class ThreadPool
{
protected:
    std::condition_variable     _condition;

private:
    std::vector<std::thread>    _threads;
    void threadLoop();

public:
    ThreadPool();
    void sendWork();
};
Run Code Online (Sandbox Code Playgroud)

ThreadPool.cpp:

#include "ThreadPool.h"

ThreadPool::ThreadPool()
{
    for (unsigned int i {0}; i < 10; ++i)
        _threads.push_back(std::thread(&ThreadPool::threadLoop, this));
}
void …
Run Code Online (Sandbox Code Playgroud)

c++ multithreading c++11

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

Racket流会记住他们的元素吗?

在从无限流中计算大量数字时,Racket会使用memoization吗?因此,例如,如果我打印出(也就是计算和显示)无限整数流上的前400个数字:(1 2 3 ... 399 400)我刚要求打印前500个数字无限的流.第二组计算会使用memoization吗?那么前400个数字不会再次计算?

或者,此功能是否需要由用户编码/从库中获取?

stream racket

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

什么是开发人员的良好协作网站?

我们在世界各地都有许多开发人员需要与他们合作.

我们的功能要求是:

  1. 某种白板,多个用户可以查看和更新​​.
  2. 私人维基.
  3. 用于管理工作负载的票证系统.
  4. 源控制系统会很好,但不是必需的.

理想情况下,这已经存在于某个地方(并且是免费的),或者如果任何软件可以做到这一点,这也是不昂贵的,那就没问题了.

理想情况下,所有这些功能都将通过标准http运行.

development-environment

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

在Rails上运行Perl的可行性是什么?

Rails是一个很棒的平台,但它没有Perl的历史,所以我认为将它们放在一起可能是一个有趣的想法.任何有很多Rails经验的人都会发现这有什么问题吗?

perl ruby-on-rails

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

Java renameTo在包含内容的文件夹上

只是尝试使用Java重命名文件夹树的根目录.

使用File.renameTo()仅适用于Windows,该文件夹根本没有内容.我似乎无法找到这是否是预期的行为.它似乎没有在文档中提及.

我目前不得不使用递归文件\文件夹复制过程然后删除原始,但这比我希望在文件夹树中更强烈,其中每个节点可能有数百个子节点.

看起来Java 7有Path.moveTo()但我还不能使用7.

我是不是以肮脏的方式做到了,还是有办法让根文件夹名称改变了?

谢谢.

java directory file move

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

Zeckendorf和Golden Ratio Base之间的转换

Zeckendorf和黄金比率基数显然密切相关,但从一个转换到另一个似乎仍然很棘手.我知道Frougny和Sakarovitch有关于此的工作,但我还没有完全理解这一点.一个问题是黄金比率基数表示在小数点附近相当对称,这表明这些表示可以是无上下文的.Sakarovitch和Frougny通过使用"折叠"黄金比率基数来处理这个问题.通过这种修改过的表示,他们可以假设使用有限状态传感器进行转换,但我没有意识到这应该如何工作.

至于黄金比率基础的部分对称性,这与成对的根有关(我对乔治·伯格曼(PC)的解释比较长).

关于这两种表示之间的关系我知道的一件事是,对于形式为d-1 ... d_i*d_j ... d_n的每个黄金比例基本表示(使用'*'作为小数点),有一个对应的涉及斐波纳契数的方程:

Example 4 = 101.01 <=> 4f_n = f_{n+2} + f_n + f_{n-2}   (with f_0 = f_1 = 1
                                                          and f_n = f_{n-1} + f_{n-2})
For n=3,  f_n=3:  12 =   10101
for n=4,  f_n=5:  20 =  101010
for n=5   f_n=8:  32 = 1010100    
Run Code Online (Sandbox Code Playgroud)

(等等.有一系列数字都具有与4的黄金比率基数表示相同的Zeckendorf位模式).这肯定看起来应该有用,但是怎么样?

这种模式在D. Gerdemann,Zeckendorf家族身份的组合证明,Fibonacci Quarterly,2008/2009中进行了讨论.

顺便说一句:尽管在斐波那契季刊中有一篇论文,但我在这方面绝对是业余爱好者.我的知识存在很多差距,包括我所询问的差距.

base-conversion fibonacci

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

在Scheme中,当递归函数返回一个列表时,我无法将它分配给变量

我有以下代码:

(define (get-data)
  (define port (open-input-file "../data/problem11.txt"))
  (define field 0)
  (define (get-fields)
    (define field (read port))
    (cond ((not (eof-object? field)) 
           (cons field (get-fields)))  
          (else '())))

  (define returned (get-fields))
  (close-input-port port)
  returned)

(get-data)
Run Code Online (Sandbox Code Playgroud)

我根据手册找不到任何问题,谷歌搜索时没有任何问题,但是当我运行代码时,SCM(我选择的方案解释器)给出了以下错误:

;ERROR: "/usr/lib/scm/Iedline.scm": unbound variable:  get-fields
; in expression: (get-fields)
; in scope:
;   (returned get-fields field port . #@define)
;   ()  procedure get-data
;STACK TRACE
1; (#@define ((returned (get-fields)) (get-fields (#@lambda () (# ...
2; (#@get-data)
Run Code Online (Sandbox Code Playgroud)

但是,当我使我的代码看起来像这样,它工作正常:

(define (get-data port)
  (define field 0)
  (define (get-fields)
    (define field …
Run Code Online (Sandbox Code Playgroud)

syntax recursion scheme

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

在DrRacket中循环宏

我正在尝试在DrRacket中为while循环创建一个宏.这是我写的:

(require mzlib/defmacro)

(define-macro my-while
  (lambda (condition  body)
    (list 'local (list (list 'define (list 'while-loop)
                             (list 'if condition
                                   (list body (list 'while-loop))
                                   '(void))))
          '(while-loop))))


(define x 0)

(my-while (< x 10)
          (begin              
            (display x)
            (newline)
            (set! x (+ x 1))))
Run Code Online (Sandbox Code Playgroud)

该程序的输出是:

0
1
2
3
4
5
6
7
8
9
error:  procedure application: expected procedure, given: #<void>; arguments were: #<void>
Run Code Online (Sandbox Code Playgroud)

有人可以帮我弄这个吗?为什么这个宏不会终止并返回void.似乎当条件不为真时,系统会尝试将void作为参数应用于某个过程.

macros scheme racket

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

lisp apply append

我转发此功能以从列表x中删除数字

(defun rm-nums (x)
  (cond
    ((null x) nil)
    (t (mapcar 'numberp x))))
Run Code Online (Sandbox Code Playgroud)

但是,当我输入(rm-nums '(32 A T 4 3 E)) 回报(T NIL NIL T T NIL)

我想要它而不是返回T或Nil,我希望它返回仅导致NIL的值[这不是数字]所以这个例子应该返回(A T E) 我应该使用mapcar WITHOUT recursion或iteration或bultin函数"remove-if "

我认为它与名为apply-append的东西有关但我对此一无所知.任何帮助?

lisp append apply

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