小编Phi*_*l H的帖子

javascript中最快的斜边?

我在javascript中看到了很多关于模拟和动画的问题,通常涉及计算斜边:

hypot = Math.sqrt(x*x + y*y);
Run Code Online (Sandbox Code Playgroud)

由于笛卡尔坐标是大多数这些引擎中的首选武器,因此需要进行这些计算以找到点对之间的距离等.因此,计算斜边的任何加速都可能对许多项目有很大帮助.

为此,您能看到比上述简单实现更快的方法吗?我发现Chrome中的近似值稍微快一些,但根据SuperCollider中的近似函数, Firefox中的近似值要慢得多.

编辑2015-08-15:我已将接受的答案改为Math.hypot答案; 我怀疑目前的实用方法是使用Math.hypot或合成的hypot函数(如果不可用),并且如果足够并且Math.hypot不可用则与square(每个sch的答案)进行比较.

javascript math approximation

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

通过解除引用NULL指针来分配引用

int&  fun()
{
    int * temp = NULL;
    return *temp;
}
Run Code Online (Sandbox Code Playgroud)

在上面的方法中,我试图取消引用NULL指针.当我调用此函数时,它不会给出异常.我发现当返回类型是引用时它不会给出异常,如果它是按值,那么它.即使将NULL指针的解引用引用为引用(如下面的行),它也不会给出.

int* temp = NULL:
int& temp1 = *temp;
Run Code Online (Sandbox Code Playgroud)

在这里我的问题是,在引用的情况下编译器是否进行解除引用?

c++ pointers reference null-pointer undefined-behavior

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

将每个单词的第一个字符转换为大写

我有一个字符串,我需要将每个单词的第一个字母转换为大写字母,然后使用xsl将其转换为小写字母,例如,

输入字符串= dInEsh sAchdeV kApil Muk

期望的输出字符串= Dinesh Sachdev Kapil Muk

虽然,我知道我必须使用翻译功能,但我怎样才能将每个单词的第一个章程翻译成大写字母,并使用XSLT 1.0将所有单词翻译成小写字母

谢谢

xml title-case xslt xslt-1.0

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

你会用什么算法来编写鹦鹉?

鹦鹉学习附近最常说的单词和短语,以便在不适当的时刻重复它们.那么你将如何创建一个软件版本?假设它可以访问麦克风并且可以随意录制声音,那么如何在不需要无限资源的情况下对其进行编码?

我能想到的最好的方法是使用声音中的静音来划分流,然后使用一些模式识别将每个模式编码为一个标记列表,在您遇到它们时存储新的标记.散列令牌序列并计算数据库中的出现次数,您可以构建最常出现的短语的图片.但鉴于短语种类繁多,你如何防止它成为一个巨大的名单?并且匹配的对数量绝对会从匹配的组合性质中产生许多误报.

你会使用神经网络吗,因为这是一只真正的鹦鹉如何管理它?或者是否有另一种更聪明的方法来匹配模拟数据中的大规模模式?

pattern-matching

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

RabbitMQ C#API基于事件的消息消费

while (true)
{
    BasicDeliverEventArgs e = (BasicDeliverEventArgs)Consumer.Queue.Dequeue();
    IBasicProperties properties = e.BasicProperties;
    byte[] body = e.Body;
    Console.WriteLine("Recieved Message : " + Encoding.UTF8.GetString(body));
    ch.BasicAck(e.DeliveryTag, false);
}
Run Code Online (Sandbox Code Playgroud)

这是我们通过订阅检索消息时所做的事情.我们使用While循环,因为我们希望消费者不断地听...如果我想让这个甚至基于......那就是当时新消息到达队列的时候只有消费者应该消费消息..或任何类似的事件..

c# api producer-consumer rabbitmq

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

你会如何在python中编写一个@debuggable装饰器?

调试时,我喜欢打印出函数的所有输入和输出(我知道我需要一个更好的IDE,但是幽默我,这可以用于错误报告).所以,我最好喜欢:

@debuggable
def myfunc(argA,argB,argC):
    return argB+1
Run Code Online (Sandbox Code Playgroud)

并使用全局变量来打开或关闭调试.不,我猜你也不喜欢全局变量.

我能想到的最好的是:

DEBUG = True

def debuggable(func):
    if DEBUG:
        def decorated(*args):
            print "Entering ",func.func_name
            print "    args ",args
            ret = func(*args)
            print ret
            return ret
        return decorated
    else:
        return func

@debuggable
def myfunc(this,that):
    return this+that
Run Code Online (Sandbox Code Playgroud)

并运行:

>>> myfunc(1,3)
Entering  myfunc
   args  (1, 3)
4
Run Code Online (Sandbox Code Playgroud)

我怎样才能改善这一点?

python decorator

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

我疯狂地在我的功能中重新创建一个小型垃圾收集系统吗?

我有一些(C++)函数,每个函数包含多个调用,在堆上创建相同基本类型的类似数组.在这些函数的不同点,我可能需要抛出异常.跟踪哪些数组已被删除是一件痛苦的事情,而且非常容易出错,因此我在考虑将数组指针添加到a中Set<ArrType*>,当我捕获异常时,我可以删除每个项目,如下所示:

try
{
   set<ArrType*> sHeap;
   ArrType* myArr = new ArrType[5];
   sHeap.Add(myArr);
   someExternalRoutine(myArr);
   ...
} 
catch(CString s)
{
   DeleteAllPointersInMyHeap(sHeap);
   throw(s);
}
Run Code Online (Sandbox Code Playgroud)

感觉有点像添加本轮,但我无法解决这样一个事实,即几个外部调用中的任何一个都可能抛出异常,我需要明确删除分配到该点的所有指针.

这只是愚蠢吗?我应该在外部调用周围添加较小的try-catch块吗?我最终还是会删除一些删除A的列表; 删除B; 删除D; 每一个......之后

c++ garbage-collection

8
推荐指数
4
解决办法
400
查看次数

生成不可变循环数据结构

假设我有这个简单的类:

public class Pair {
    public readonly object first;
    public readonly object second;

    public Pair(object first, object second) {
        this.first = first;
        this.second = second;
    }
}
Run Code Online (Sandbox Code Playgroud)

生成对的循环图是不可能的.

你将如何创建一个类似的类,它仍然是不可变的,但可以某种方式用于生成循环图?

immutability lazy-evaluation data-structures cyclic-graph

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

在dll边界上公开std :: vector - 编译器独立性的最佳实践

在DLL边界暴露STL容器是不是一个好主意,一般不可能的(见这个答案为何,而这其中大约在DLL边界露出一个std ::列表).我需要能够在用不同的(VC08/VC10 +)编译器编译的DLL和EXE之间传递数据; 这个Q只涉及一切都是一样的.

揭露它们的最佳方式是什么?向量与列表有点不同,因为内存保证是连续的,所以如果我只需要一个双向的const向量,我可以只提供块的开始和结束指针到dll中的函数吗?dll还需要返回一些像向量数组的结构.

我想知道一个包含开始和结束指针的结构:

template <typename T>
struct vecWrapper<T> {
    T*  begin;
    T*  end;
}

// in the dll
int func(vecWrapper<double> numbers);
Run Code Online (Sandbox Code Playgroud)

这是明智的吗?据推测,从函数返回的任何内容都需要一个析构函数(在dll端),它会破坏它所指向的东西.

c++ dll stl loose-coupling visual-studio

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

C#中的三元运算符(?:)线程是否安全?

考虑以下两种选择,以获得更高的数字currentPrice100...

int price = currentPrice > 100 ? currentPrice : 100

int price = Math.Max(currentPrice, 100)
Run Code Online (Sandbox Code Playgroud)

我提出了这个问题,因为我正在考虑一个currentPrice可以由其他线程编辑变量的上下文.

在第一种情况下... price可以获得低于100?的值?

我正在考虑以下事项:

if (currentPrice > 100) {
    //currentPrice is edited here.
    price = currentPrice;
}
Run Code Online (Sandbox Code Playgroud)

c# ternary-operator thread-safety

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