Questions tagged «language-agnostic»

将此标签用于独立于任何特定编程语言的编程问题。

6
计算2D向量的叉积
从维基百科: 叉积是在三维欧几里得空间中对两个向量的二进制运算,其结果是另一个向量垂直于包含两个输入向量的平面。 假设定义仅以三个(或七个,一和零)维定义,那么一个如何计算两个2d向量的叉积? 我已经看到了两种实现。一个返回一个新向量(但仅接受单个向量),另一个返回标量(但是两个向量之间的计算)。 实现1(返回一个标量): float CrossProduct(const Vector2D & v1, const Vector2D & v2) const { return (v1.X*v2.Y) - (v1.Y*v2.X); } 实现2(返回向量): Vector2D CrossProduct(const Vector2D & v) const { return Vector2D(v.Y, -v.X); } 为什么要采用不同的实现方式?我将把标量实现用于什么?矢量实现将用于什么? 我问的原因是因为我自己在编写Vector2D类,却不知道使用哪种方法。

9
为什么Math.pow(0,0)=== 1?
我们都知道0 0是不确定的。 但是,javascript说: Math.pow(0, 0) === 1 // true 和C ++说了同样的话: pow(0, 0) == 1 // true 为什么? 我知道: >Math.pow(0.001, 0.001) 0.9931160484209338 但是为什么不Math.pow(0, 0)抛出错误呢?也许aNaN会比1。


15
在编写任何代码之前,您如何计划应用程序的体系结构?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 改善这个问题 我遇到的一件事是在编写任何代码之前先规划应用程序的体系结构。 我并不是说要收集要求以缩小应用程序的工作范围,而是要有效地思考一种布局总体类,数据和流结构的好方法,并对这些想法进行迭代,以便我有一个可靠的计划。在打开IDE之前,请牢记操作。现在,只需打开IDE,创建一个空白项目,开始编写位和鲍勃并让设计从那里“长出来”就可以了。 我收集到UML是执行此操作的一种方法,但是我没有使用它的经验,因此看起来有点模糊。 在编写任何代码之前,您如何计划应用程序的体系结构?如果要采用UML,您能为小型应用程序开发人员推荐一个简洁实用的介绍吗? 感谢您的投入。

4
嵌套捕获组在正则表达式中如何编号?
对于正则表达式应如何处理嵌套括号的捕获行为,是否存在已定义的行为?更具体地说,您是否可以合理地期望不同的引擎将在第一个位置捕获外部括号,并在随后的位置捕获嵌套的括号? 考虑以下PHP代码(使用PCRE正则表达式) <?php $test_string = 'I want to test sub patterns'; preg_match('{(I (want) (to) test) sub (patterns)}', $test_string, $matches); print_r($matches); ?> Array ( [0] => I want to test sub patterns //entire pattern [1] => I want to test //entire outer parenthesis [2] => want //first inner [3] => to …

14
Code Golf:玩俄罗斯方块
已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 基础知识: 考虑以下四元骨牌和空白的比赛场地: 0123456789 IOZTLSJ [] [] ### ## #######[] ### #######[] ### ## [] #[] [===========] 比赛场地的尺寸是固定的。顶部的数字仅在此处指示列号(另请参见输入)。 输入: 1。您将获得一个特定的比赛场地(基于上述内容),该场地已经可以用四聚氰胺部分填充(可以在单独的文件中或通过stdin提供)。 输入样例: [] [] [] [] [###] [## ######] [===========] 2。您将得到一个字符串,该字符串描述(以空格分隔)要在哪一列插入(并下拉)的四丁胺。Tetrominoes不需要旋转。可以从标准输入中读取输入。 输入样例: T2 Z6 I0 T7 您可以假设输入是“格式正确的”(或在输入不正确时产生未定义的行为)。 输出量 渲染结果字段(“完整”行必须消失)并打印分数计数(每条下降的行占10分)。 基于上面的样本输入的样本输出: [] [] [] [####] [####] [##### ####] [===========] 10 优胜者: 最短的解决方案(按代码字符计数)。用法示例很好。打高尔夫球吧! …

4
差异执行如何工作?
我已经在Stack Overflow上看到了一些提及,但盯着Wikipedia(相关页面已被删除)和 MFC动态对话框演示并没有启发我。有人可以解释一下吗?学习根本不同的概念听起来不错。 根据答案:我认为我对此感觉更好。我想我只是第一次没有仔细看一下源代码。在这一点上,我对差异执行有不同的感觉。一方面,它可以使某些任务变得相当容易。另一方面,要使其启动并运行(即以您选择的语言进行设置)并不容易(我相信如果我对它的理解更好的话就可以了)……尽管我猜想它的工具箱只需要制作一次,然后根据需要进行扩展。我认为,为了真正理解它,我可能需要尝试用另一种语言来实现它。

2
缓冲与无缓冲IO
我了解到,默认情况下,程序中的I / O是经过缓冲的,即它们是从临时存储提供给请求程序的。我知道缓冲可以提高IO性能(也许通过减少系统调用)。我已经看到了禁用缓冲的示例,例如setvbuf在C语言中。这两种模式之间有什么区别?什么时候应该在另一种之上使用?



6
快速矩形到矩形的交点
测试2个矩形是否相交的快速方法是什么? 在网上搜索时发现了这种单行代码(WOOT!),但我不知道如何用Java脚本编写它,它似乎是用C ++的古老形式编写的。 struct { LONG left; LONG top; LONG right; LONG bottom; } RECT; bool IntersectRect(const RECT * r1, const RECT * r2) { return ! ( r2->left > r1->right || r2->right < r1->left || r2->top > r1->bottom || r2->bottom < r1->top ); }

6
面向对象编程的替代方法?
OOP可能是当今软件设计中最常用的编程范例。我的问题是–还有哪些其他范式可以与之竞争并且可以代替OOP?为了澄清这个问题,我不是在问其他范式。有很多,但我想知道是哪一个… 已经在实践中使用,不仅在理论上。 可以与OOP竞争,因此可以在最小的痛苦下用于大型项目。 可用于开发具有业务逻辑,数据库等的桌面应用程序。 不能与OOP一起使用,而是作为OOP的替代。 并且,如果有的话,它的优缺点是什么,为什么它比OOP更好/更糟糕,哪种语言是最好的使用方式,如何在流行的语言中使用它,具有任何设计模式,是否可以完全取代OOP?

5
何时在签名值上使用无符号值?
什么时候在无符号变量上使用无符号变量比较合适?怎么样在一个for循环? 我对此有很多意见,我想看看是否有任何类似共识的内容。 for (unsigned int i = 0; i < someThing.length(); i++) { SomeThing var = someThing.at(i); // You get the idea. } 我知道Java没有unsigned值,这一定是Sun Microsystems方面的明智决定。


11
我应该如何进行浮点比较?
我目前正在编写一些代码,其中包含以下内容: double a = SomeCalculation1(); double b = SomeCalculation2(); if (a < b) DoSomething2(); else if (a > b) DoSomething3(); 然后在其他地方,我可能需要做平等: double a = SomeCalculation3(); double b = SomeCalculation4(); if (a == 0.0) DoSomethingUseful(1 / a); if (b == 0.0) return 0; // or something else here 简而言之,我正在进行很多浮点数学运算,因此我需要对条件进行各种比较。我无法将其转换为整数数学,因为在这种情况下,这种事情毫无意义。 我已经读过浮点比较可能不可靠,因为您可以进行如下操作: double …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.