小编psi*_*lia的帖子

如何测试x是否是通用集的成员?

我有一个列表L,x in L如果x是L的成员,则计算结果为True.我可以使用什么代替L来依次x in smth对x的值求值为True?

所以,我需要一些东西,包含所有对象,包括它自己,因为x也可以是这个"smth".

python math

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

Python - 列表上的简单算法任务(求职面试的标准问题)

有2个输入列表L和M,例如:

L =  ['a',     'ab',  'bba']
M = ['baa', 'aa',  'bb']
Run Code Online (Sandbox Code Playgroud)

如何获得2个非空输出列表U和V,使得: ''.join(U) == ''.join(V)) is True和U的每个元素都在L中,并且V的每个元素都在M中?

例如,上面两个输入列表的一种可能解决方案是:

U=['bba', 'ab', 'bba', 'a']
V=['bb', 'aa', 'bb', 'baa']
Run Code Online (Sandbox Code Playgroud)

因为

 'bbaabbbaa' == 'bbaabbbaa' is True
Run Code Online (Sandbox Code Playgroud)

every element of ['bba', 'ab', 'bba', 'a'] is in ['a', 'ab', 'bba']

every element of ['bb', 'aa', 'bb', 'baa'] is in ['baa', 'aa', 'bb']

1)创建一个算法,找到至少一个解(U和V).

2)它可以在O(n)中求解,其中n = len(L + M)?

:WQ

python algorithm

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

Python - 多维数组

Python不提供对多维数组的内置支持.我需要开发一个11维数组和一组函数来操作它(主要是线性代数,矢量算术).但是,不允许外部库导入.我有一个C代码,并尝试将其移植到Python:

typedef vec3_t float[3];
vec3_t Array[dim0][dim1][dim2][dim3][dim4][dim5][dim6][dim7][dim8][dim9][dim10];
Array[0][0][0][0][0][0][0][0][0][0][1] = {1.0, 0.0, 0.0};
Run Code Online (Sandbox Code Playgroud)

如何有效地在Python中实现(具有良好的可读性)?

PS:最多为Python 2.5版本.

c python

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

如何将长整数映射到较小整数的N维向量(和快速反向)?

给定一个小整数的N维向量是否有任何简单的方法来映射它与一个大的整数一一对应?

比如说,我们有N = 3个向量空间.我们可以使用整数(int48)y表示向量X = [(int16)x1,(int16)x2,(int16)x3]吗?显而易见的答案是"是的,我们可以".但问题是:"执行此操作的最快方法是什么?反向操作?"

这个新的1维空间是否具有一些非常特殊的有用属性?

c algorithm math

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

Bash - 如何计算指令数量?

我有许多*.s程序集文件.我想计算它们包含多少指令.例如,要计算我所做的所有mul指令:

cat *.s | grep -P '\t'"mul" | wc -l
Run Code Online (Sandbox Code Playgroud)

这给了我所有mul指令的复合数.

我想有一个输出像:

mul: 893
add: 12054
sub: 2356
...
Run Code Online (Sandbox Code Playgroud)

问题是目标平台不支持指令表.每个目标平台都有不同的指令集.必须从现有的程序集文件中推导出支持的指令.我可以在没有Perl/Python代工厂的情况下在Bash中完成吗?

regex linux bash assembly build

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

C多维数组导致分段错误(GCC)

为什么我改变一个数组维度的大小我得到一个运行时错误:"分段错误?".例:

#include <stdio.h>
#define DIM 8 
int main(int argc, char **argv)
{
    int a[3][3][3][3][3][3][3][3][3][3][DIM],
        b;
    a[1][1][1][1][1][1][1][1][1][1][1] = 2;
    b=a[1][1][1][1][1][1][1][1][1][1][1];
    printf("%d \n",b);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如果DIM为8,则不会产生运行时错误,但只要DIM大于8,就会导致运行时错误"Segmentation Fault".为什么???

c arrays gcc

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

如何优化这个将输入位转换为单词的简单函数?

我编写了一个函数,它读取字节的输入缓冲区并产生一个字输出缓冲区,其中每个字对于输入缓冲区的每个ON位可以是0x0081,对于每个OFF位都可以是0x007F.给出输入缓冲区的长度.两个阵列都有足够的物理位置.我也有大约2Kbyte的空闲RAM,我可以用于查找表等.

现在,我发现这个功能是我在实时应用程序中的瓶颈.它将被频繁调用.您能否提出一种如何优化此功能的方法?我看到一种可能性是只使用一个缓冲区并进行就地替换.

void inline BitsToWords(int8    *pc_BufIn, 
                        int16   *pw_BufOut, 
                        int32   BufInLen)
{
 int32 i,j,z=0;

 for(i=0; i<BufInLen; i++)
 {
  for(j=0; j<8; j++, z++)
  {
   pw_BufOut[z] = 
                    ( ((pc_BufIn[i] >> (7-j))&0x01) == 1? 
                    0x0081: 0x007f );
  }
 }
}
Run Code Online (Sandbox Code Playgroud)

请不要提供任何库,编译器特定或CPU /硬件特定的优化,因为它是一个多平台项目.

c c++ algorithm performance bit-manipulation

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

如何在Windows编译器和GCC编译器中使用SSE?

我必须使用SSE扩展来优化一段代码.我的目标平台是Windows和Linux,因此我使用MS编译器(VStudio)和GCC编译器构建我的应用程序.

SSE涉及哪些方法?我可以找到很多关于如何在GCC中使用SSE的例子,但它们似乎与MS编译器不兼容.是否存在milti-platform SSE方法?

c gcc sse multiplatform

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

Python - 如何获取我定义的所有全局名称的列表?

我在python shell中工作,几周前我已经定义了一个变量,它引用了一个非常重要的列表.shell始终保持打开状态,但我忘记了这个名字.如何获取我定义的所有全局名称的列表?

python

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

如何在没有隐藏额外内存分配的情况下修改numpy数组?

我有一个函数,必须用f(x)替换numpy数组X的每个元素x.

def modify_inplace(X):
    X = 2. / (8. + numpy.exp(-X))
Run Code Online (Sandbox Code Playgroud)

但这不起作用:

>>> X = numpy.random.random( size=(2,3) )
>>> X
array([[ 0.97476386,  0.76411101,  0.37690288],
       [ 0.05462798,  0.44722799,  0.23570353]])
>>>> modify_inplace(X)
>>> X
array([[ 0.97476386,  0.76411101,  0.37690288],
       [ 0.05462798,  0.44722799,  0.23570353]])
Run Code Online (Sandbox Code Playgroud)

我知道,我可以简单地返回新的数组,但我想知道是否可以在内部修改numpy数组,以便不会分配额外的内存?

Ashwini Chaudhary在下面提供了一个解决方案,但这并不是我想要的,因为我需要在没有任何额外malloc的情况下修改数组.

python arrays numpy

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

如何过滤包含N个或更多字符的所有单词?

我想处理一个文本文件来查找包含超过N个字符的所有单词.欢迎使用Bash(grep,awk)或Python(re)中的任何解决方案!但是,最短的是优选的.

python regex linux bash

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

C/C++ - 评估函数调用中的参数

可能重复:
功能参数的评估顺序

在C/C++中使用以下结构是否安全?

f(g(), h());
Run Code Online (Sandbox Code Playgroud)

其中g()预期要被评估第一,然后h().

所有编译器都在所有体系结构上显示相同的行为吗?

c c++ multiplatform semantics

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

Python - 最有用的列表 - 理解构造

Python的用户自制列表理解构造最有用吗?

我创建了以下两个量词,用于执行不同的验证操作:

def every(f, L): return not (False in [f(x) for x in L])
def some(f, L): return True in [f(x) for x in L]
Run Code Online (Sandbox Code Playgroud)

下面提出了一个优化版本(需要Python 2.5+):

def every(f, L): return all(f(x) for x in L)
def some(f, L): return any(f(x) for x in L) 
Run Code Online (Sandbox Code Playgroud)

那么,它是如何工作的?

"""For all x in [1,4,9] there exists such y from [1,2,3] that x = y**2"""
answer = every([1,4,9], lambda x: some([1,2,3], lambda y: y**2 == x))
Run Code Online (Sandbox Code Playgroud)

使用此类操作,您可以轻松地进行智能验证,例如:

"""There exists at least one bot in …
Run Code Online (Sandbox Code Playgroud)

python list-comprehension list

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