小编Nix*_*xuz的帖子

解释Vinay Deolalikar证明P!= NP的证据

最近在惠普实验室的Vinay Deolalikar周围发表了一篇论文,声称已证明P!= NP.

有人可以解释一下这个证明对我们这个数学上不那么倾向的人有用吗?

math complexity-theory computer-science proof p-np

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

Python列表的基础数据结构是什么?

用于实现Python内置列表数据类型的典型底层数据结构是什么?

python list data-structures

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

如何处理包内部的R数据?

我正在开发的R包需要几个R数据对象,例如预先计算的模型和参数.

目前,我将每个对象放在包的'data'目录中的各个.RData文件中.使用包时,用户可以使用"数据"功能将这些对象附加到其环境中.

我想要的行为是,在加载包时,数据对象会自动附加到内部包环境,而用户无法直接访问.

我的理解是将'sysdata.rda'文件放在包含当前在'data'中的对象的包的'R'目录中将给出我想要的结果.但是,有没有办法做到这一点,以便我可以将每个对象放在一个单独的文件而不是组合在一起?

load r internal package rda

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

如何为R中的数据加载创建进度条?

是否可以使用load()为加载到R中的数据创建进度条?

对于数据分析项目,大型矩阵从.RData文件加载到R中,这需要几分钟才能加载.我想有一个进度条来监控数据加载前的时间.R已集成了很好的进度条功能,但load()没有用于监视已读取数据量的挂钩.如果我不能直接使用负载,是否有间接方式可以创建这样的进度条?也许将.RData文件加载到chucks中并将它们放在一起用于R.是否有人对此有任何想法或建议?

load r file binary-data progress-bar

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

为什么设置HTML5的CanvasPixelArray值非常慢,我怎么能更快地完成它?

我正在尝试使用HTML 5画布'像素操作来做一些动态视觉效果,但我遇到了一个问题,即在CanvasPixelArray中设置像素的速度非常慢.

例如,如果我有以下代码:

imageData = ctx.getImageData(0, 0, 500, 500);

for (var i = 0; i < imageData.length; i += 4){
    imageData.data[i] = buffer[i];
    imageData.data[i + 1] = buffer[i + 1];
    imageData.data[i + 2] = buffer[i + 2];
}

ctx.putImageData(imageData, 0, 0);
Run Code Online (Sandbox Code Playgroud)

使用Chrome进行分析显示,它比不使用CanvasPixelArray的以下代码运行速度慢44%.

tempArray = new Array(500 * 500 * 4);
imageData = ctx.getImageData(0, 0, 500, 500);

for (var i = 0; i < imageData.length; i += 4){
    tempArray[i] = buffer[i];
    tempArray[i + 1] = buffer[i + 1];
    tempArray[i + 2] …
Run Code Online (Sandbox Code Playgroud)

javascript html5 canvas pixel-manipulation

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

多线程random_r比单线程版本慢

以下程序与此处描述的程序基本相同.当我使用两个线程(NTHREADS == 2)运行并编译程序时,我得到以下运行时间:

real        0m14.120s
user        0m25.570s
sys         0m0.050s
Run Code Online (Sandbox Code Playgroud)

当它只用一个线程(NTHREADS == 1)运行时,即使它只使用一个核心,我的运行时间也会明显更好.

real        0m4.705s
user        0m4.660s
sys         0m0.010s
Run Code Online (Sandbox Code Playgroud)

我的系统是双核的,我知道random_r是线程安全的,我很确定它是非阻塞的.当没有random_r运行相同的程序并且使用余弦和正弦的计算作为替换时,双线程版本按预期运行大约1/2.

#include <pthread.h>
#include <stdlib.h>
#include <stdio.h>

#define NTHREADS 2
#define PRNG_BUFSZ 8
#define ITERATIONS 1000000000

void* thread_run(void* arg) {
    int r1, i, totalIterations = ITERATIONS / NTHREADS;
    for (i = 0; i < totalIterations; i++){
        random_r((struct random_data*)arg, &r1);
    }
    printf("%i\n", r1);
}

int main(int argc, char** argv) {
    struct random_data* rand_states = (struct random_data*)calloc(NTHREADS, sizeof(struct random_data));
    char* rand_statebufs = …
Run Code Online (Sandbox Code Playgroud)

c linux random performance multithreading

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

是否有任何分类算法针对具有一对多(1:n)关系的数据?

数据挖掘领域是否有任何关于对具有一对多关系的数据进行分类的研究?

例如,像这样的问题,我说我试图根据他们的班级和个人信息来预测哪些学生将退学.显然,学生个人信息与他们在课堂上取得的成绩之间存在一对多的关系.

明显的方法包括:

  1. 聚合 - 可以以某种方式将多个记录聚合在一起,将问题简化为基本分类问题.在学生分类的情况下,他们的成绩的平均值可以与他们的个人数据相结合.虽然这种解决方案很简单,但通常会丢失关键信息.例如,如果大多数采用有机化学并且低于C-结束的学生即使他们的平均水平高于B +等级也会辍学.

  2. 投票 - 创建多个分类器(通常是弱分类器)并让他们投票以确定相关数据的整体类别.这就像是建立了两个分类器,一个用于学生的课程数据,一个用于他们的个人数据.每个课程记录将被传递到课程分类器,并根据成绩和课程名称,分类器将预测学生是否会单独使用该课程记录退学.将使用个人数据分类器对个人数据记录进行分类.然后,所有课堂记录预测以及个人信息记录预测将被一起投票.这种投票可以通过多种不同的方式进行,但很可能会考虑分类器的准确程度以及分类器的确定性.显然,该方案允许比聚合更复杂的分类模式,但是涉及许多额外的复杂性.此外,如果投票表现不佳,准确性很容易受到影响.

所以我正在寻找具有一对多关系的数据分类的其他可能解决方案.

algorithm classification machine-learning database-relations data-mining

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

分支或乘法更有效吗?

我正在尝试优化一个小的,高度使用的函数,该函数使用无符号short int中的高位来指示要一起求和的数组值.起初我使用下面显示的明显方法.请注意,循环展开未明确显示,因为它应由编译器完成.

int total = 0;
for(unsigned short mask = 0x0001, j = 0; mask != 0; mask <<= 1, j++){
    if (i & mask){
        total += value[j];
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,后来我认为删除分支以帮助CPU流水线操作可能会更好,并提出以下建议.

int total = 0;
for(unsigned short mask = 0x0001, j = 0; mask != 0; mask <<= 1, j++){
    total += ((i & mask) != 0) * value[j];
}
Run Code Online (Sandbox Code Playgroud)

请注意,由于(i&mask)不会产生布尔答案,因此与0的比较会强制结果为1或0.虽然第二种方法从代码的这一部分中删除了if语句,但第二种解决方案需要除了等式的其余部分之外,在每次迭代时运行0或1的乘法.

哪个代码运行得更快?

c c++ optimization branch if-statement

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

如何从嵌套对象文字访问外部成员?

在以下代码中,是否可以从嵌套对象文字中访问x成员?

var outer = {
    x : 0,
    inner: {
        a : x + 1,       // 'x' is undefined.
        b : outer.x + 1, // 'outer' is undefined.
        c : this.x + 1   // This doesn't produce an error, 
    }                    // but outer.inner.c is NaN.
}
Run Code Online (Sandbox Code Playgroud)

javascript scope nested object-literal

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

是否有可能拥有超过一百万列的SQL表?

我正在为微阵列数据构建数据库.每个患者样本都有超过1,000,000个功能,我希望将患者样本作为行存储在SQL表中,每个功能都作为一列.

                 HuEX Microarray Data
+----+----------+----------+-----+------------------+
| ID | Feature1 | Feature2 | ... | Feature1,000,000 |
+----+----------+----------+-----+------------------+
| 1  |   2.3543 |  10.5454 | ... |          5.34333 |
| 2  |  13.4312 |   1.3432 | ... |         40.23422 |
+----+----------+----------+-----+------------------+
Run Code Online (Sandbox Code Playgroud)

我知道大多数关系数据库系统都限制了表中的列数.

+------------+-----------------+
|       DBMS | Max Table Col # | 
+------------+-----------------+
| SQL Server |  1,024 - 30,000 |
|      MySQL |    65,535 bytes |
| PostgreSQL |     250 - 1,600 |
|     Oracle |           1,000 | 
+------------+-----------------+
Run Code Online (Sandbox Code Playgroud)

显然,这些限制对我的任务来说太低了.反正有没有增加SQL数据库表可以拥有的列数,还是有另一个DBMS可以处理如此多的表列?

更新 …

sql database limit

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