我期待以下两个向量在RAM中具有相同的表示:
char a_var[] = "XXX\x00";
char *p_var = "XXX";
Run Code Online (Sandbox Code Playgroud)
但奇怪的是,f(char argument[])
如果我调用它,对类型库函数的调用会破坏正在运行的应用程序f(p_var)
.但使用还f(a_var)
可以!
为什么?
我们计划用任何超高级编程语言编写高度并发的应用程序.
1)Python,Ruby或Haskell是否支持真正的多线程?
2)如果程序包含线程,虚拟机是否会自动将工作分配给多个内核(如果主板上有多个CPU,则自动分配给物理CPU)?
真正的多线程 =多个独立的执行线程利用多个核心提供的资源(而不仅仅是1个核心).
虚假多线程 =线程模拟多线程环境,而不依赖于任何本机操作系统功能.
为了确定开始将现有的iOS应用程序(用C语言编写)移植到Android是否合理,我必须估计如果用Java实现它的速度有多快.一些问题是Java代码必须翻译多次(到字节码,然后到使用JIT的本地代码).它可能会对实时属性(响应性)产生负面影响,对吧?
生成代码的质量如何?它在某种程度上与gcc/llvm生成的代码相当吗?如果是,您是否参考了比较结果(纸张)?
为了测试文件是否存在,我做:
if [ -f $FILE ];
Run Code Online (Sandbox Code Playgroud)
但是如果$ FILE是一个命名管道,它就不起作用,例如ls -l pipename
显示一个带p属性的管道:
prw-r--r-- 1 usr grp 0 Nov 26 02:22 pipename
Run Code Online (Sandbox Code Playgroud)
如何测试命名管道是否存在?
给定大小为L的向量X,其中X的每个标量元素来自二进制集{0,1},如果大小为L的向量Y由整数组成,则找到点乘积z = dot(X,Y)价值元素.我建议,必须有一种非常快速的方法来做到这一点.
假设L=4; X[L]={1, 0, 0, 1}; Y[L]={-4, 2, 1, 0}
我们必须找到z=X[0]*Y[0] + X[1]*Y[1] + X[2]*Y[2] + X[3]*Y[3]
(在这种情况下会给我们-4
).
很明显,X可以使用二进制数字表示,例如,对于L = 32,整数类型为int32.然后,我们要做的就是找到这个整数的点积和一个32个整数的数组.您是否有任何想法或建议如何快速完成?
我创建了一个二进制堆,它代表一个优先级队列.它只是经典的众所周知的算法.此堆计划不同事件的时间顺序(排序键是时间).
它支持2种操作:插入和删除.堆的每个节点的密钥大于或等于其每个子节点.但是,使用相同的键添加事件不会保留它们的添加顺序,因为每次调用Remove或Insert后,堆启动和堆降过程都会破坏顺序.
我的问题是:在经典算法中应该改变什么以保持具有相同优先级的节点的顺序?
有没有非常快的方法来找到整数的二进制对数?例如,给定一个数x = 52656145834278593348959013841835216159447547700274555627155488768这样的算法必须找到定义Y = Log(X,2),它是215 x为总是2的幂.
问题似乎很简单.所需要的只是找到最重要的1位的位置.有一个众所周知的方法FloorLog,但它不是很快,特别是对于很长的多字整数.
什么是最快的方法?
如何将浮点数转换为字节序列,以便它可以保存在文件中?这种算法必须快速且高度便携.它必须允许相反的操作,反序列化.如果每个值(持久空间)只需要非常微小的多余位,那就太好了.
如何创建一个函数,在每个调用中生成一个随机整数?该数字必须尽可能最随机(根据均匀分布).它只允许使用一个静态变量和最多3个基本步骤,其中每个步骤仅包含arity 1或2的一个基本算术运算.
例:
int myrandom(void){
static int x;
x = some_step1;
x = some_step2;
x = some_step3;
return x;
}
Run Code Online (Sandbox Code Playgroud)
基本算术运算是+, - ,%,而不是xor,或左移,右移,乘法和除法.当然,不允许使用rand(),random()或类似的东西.
是否有可能使GNU Octave与其内容一起输出矩阵尺寸?例如,它应该产生smth.像这样:
octave:1> X = [1 2; 3 4]
X [2x2] =
1 2
3 4
octave:2> X(1,:)
ans [1x2] =
1 2
Run Code Online (Sandbox Code Playgroud)