我正在寻找获得π值的最快方法,作为个人挑战.更具体地说,我使用的方法不涉及使用#define
常量M_PI
,或者对数字进行硬编码.
下面的程序测试了我所知道的各种方式.从理论上讲,内联汇编版本是最快的选择,但显然不便于携带.我已将其作为基线与其他版本进行比较.在我的测试中,使用内置4 * atan(1)
函数,在GCC 4.2上版本最快,因为它会自动将其折叠atan(1)
为常量.根据-fno-builtin
指定,atan2(0, -1)
版本最快.
这是主要的测试程序(pitimes.c
):
#include <math.h>
#include <stdio.h>
#include <time.h>
#define ITERS 10000000
#define TESTWITH(x) { \
diff = 0.0; \
time1 = clock(); \
for (i = 0; i < ITERS; ++i) \
diff += (x) - M_PI; \
time2 = clock(); \
printf("%s\t=> %e, time => %f\n", #x, diff, diffclock(time2, time1)); \
}
static inline double
diffclock(clock_t time1, clock_t time0)
{ …
Run Code Online (Sandbox Code Playgroud) 我想使用,Class.newInstance()
但我实例化的类没有一个无效的构造函数.因此,我需要能够传递构造函数参数.有没有办法做到这一点?
为了纪念Stack Overflow的公开发布,导致堆栈溢出的最短代码是什么?任何语言欢迎.
ETA:只是要明确这个问题,因为我偶尔会看到一个Scheme用户:尾调用"递归"实际上是迭代,任何可以通过合适的编译器相对简单地转换为迭代解决方案的解决方案都不会算一算 :-P
ETA2:我现在选择了"最佳答案"; 看这篇文章的理由.感谢所有贡献的人!:-)
法律可以简单地称为"仅使用一个点".
static void Main(string[] args)
{
new ZRLabs.Yael.Pipeline("cat.jpg")
.Rotate(90)
.Watermark("Monkey")
.RoundCorners(100, Color.Bisque)
.Save("test.png");
}
Run Code Online (Sandbox Code Playgroud)
那么这一起呢?
我试图理解Ruby中的异常,但我有点困惑.我正在使用的教程说,如果发生的异常与rescue语句识别的任何异常都不匹配,您可以使用"else"来捕获它:
begin
# -
rescue OneTypeOfException
# -
rescue AnotherTypeOfException
# -
else
# Other exceptions
ensure
# Always will be executed
end
Run Code Online (Sandbox Code Playgroud)
但是,我在后面的教程"救援"中也看到了没有指定的异常:
begin
file = open("/unexistant_file")
if file
puts "File opened successfully"
end
rescue
file = STDIN
end
print file, "==", STDIN, "\n"
Run Code Online (Sandbox Code Playgroud)
如果你能做到这一点,那么我是否需要使用其他?或者我可以像这样在最后使用通用救援?
begin
# -
rescue OneTypeOfException
# -
rescue AnotherTypeOfException
# -
rescue
# Other exceptions
ensure
# Always will be executed
end
Run Code Online (Sandbox Code Playgroud) 我正在使用Checkstyle,并且收到有关此方法的错误:
public final String getAdmitCodeStatus() {
return admitCodeStatus;
}
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误:
方法'getAdmitCodeStatus'不是为扩展而设计的 - 需要是abstract,final或empty.
该方法如何不符合要求?有什么我做错了,Checkstyle会对我这个方法咆哮吗?
我正在努力用简单的词语解释线程中的"死锁",所以请帮忙.什么可能是"死锁"(例如,在Java中)的最佳示例,以及它如何在步骤中发生以及如何防止它?但是没有深入细节.我知道这就像问两个相反的事情,但仍然.如果您有任何以前的并发编程培训经验 - 那将是一流的!
我拥有一家软件开发公司.我们为其他以其名称/头衔命名的公司开发软件.我们在会计/ ERP市场上也有一些自有品牌的头衔.我们的会计软件大约占我们业务的60%,并使用C++ Builder编写.
那些知道,实现C++ Builder的人在从Borland,CodeGear到Embarcadero的转手方面走的路很艰难,可能还有几次.C++ Builder在我们的会计软件上多次搞砸了我们.众所周知,QuickReports是错误的,他们的XML构建描述并没有与GUI紧密耦合,导致构建不起作用 - 通常是错误的界面.
在过去的8年中,我们已经稳步取消了对VCL和有缺陷的组件的依赖,但是,一些第三方VCL组件仍然不易更换.我们使用Developer Express的GRID包 - 很棒的产品.
我只是处于十字路口并且市场上有最新版本的C++ Builder XE,当你看到这款产品的糟糕历史时,我很难证明价格合理.
因此,我正在寻找可能处于类似情况并成功切换到Visual Studio的其他任何人的建议或步骤.
除了Developer Express工具之外,我们已经将大部分应用程序慢慢移动到wxWidgets.我们编写了自己的TSQL抽象,我们也可以移植.
有什么想法或建议吗?您是否已将项目移至Visual Studio,或者您是否已使用新的Builder XE来发现它之前的许多缺点已经消失?
寻找"去过那里,做过那些"的建议.
大多数数学家都同意:
ë πi + 1 = 0
但是,大多数浮点实现都不同意.我们如何解决这一争议?
我很想知道不同的语言和实现,以及使结果尽可能接近零的各种方法.要有创意!
假设C++中有一个模板函数可以完成一些有用的工作,但也可以通过输出迭代器输出一系列值.现在假设这个值序列有时很有趣,但在其他值上没有用.在STL中是否有一个可以实例化的迭代器类,它可以被实例化并传递给函数,并将忽略函数尝试分配给输出迭代器的任何值?换句话说,将所有数据发送到/ dev/null?
c++ ×2
java ×2
algorithm ×1
api-design ×1
c++builder ×1
checkstyle ×1
code-golf ×1
concurrency ×1
constructor ×1
deadlock ×1
iterator ×1
math ×1
oop ×1
performance ×1
pi ×1
ruby ×1
stl ×1
unix ×1