forcal
发表于 2010-10-28 13:51:22
不是的,是 HugeCalc 内含了反跟踪反破解技术。
gxqcn 发表于 2010-10-27 07:58 http://bbs.emath.ac.cn/images/common/back.gif
那是发生冲突了,呵呵!
但我这个窗口若弹不出来,就无法退出一些较长时间的循环。例如不小心写了一个无限循环,想要退出它。
有什么两全的办法吗?
我的窗口线程仅检测执行Forcal函数的线程是否还在运行。
gxqcn
发表于 2010-10-28 14:43:32
你确认是调用 HugeCalc 后无法弹出该窗口吗?
那么请试一试:在加载 HugeCalc 成功后,再创建该窗口线程。。。
forcal
发表于 2010-10-28 16:04:55
你确认是调用 HugeCalc 后无法弹出该窗口吗?
那么请试一试:在加载 HugeCalc 成功后,再创建该窗口线程。。。
gxqcn 发表于 2010-10-28 14:43 http://bbs.emath.ac.cn/images/common/back.gif
这个窗口的表现类似于windows的计算器,当计算时间较长时就弹出一个窗口要求用户确认是否结束计算。
此窗口仅在需要时(即Forcal正在计算且时间较长,约3~5秒后创建)才创建,故加载 HugeCalc 成功后并不立即创建,当执行Forcal函数几秒后才创建。
发现加载HugeCalc 后该窗口就不出现了。
forcal
发表于 2010-10-28 16:14:22
打扰郭先生了,问题找到了,与HugeCalc 无关,是我这个窗口的问题。
gxqcn
发表于 2010-10-28 16:27:39
43# forcal
那比较奇怪了。
HugeCalc 仅仅在加载初期进行反跟踪反破解,而后就一切正常了。
你修改下线程,不弹出窗口,看是否仍在激活状态?
forcal
发表于 2010-10-28 18:52:06
45# gxqcn
这个问题若不是封装HugeCalc,可能还得晚些时候发现,要谢谢HugeCalc!呵呵。
我使用FcHugeCalc的过程是这样的:打开OpenFC(Forcal演示程序),此时使用了默认工作区文件,而默认工作区文件中没有加载FcHugeCalc;然后我打开另一个含FcHugeCalc的工作区文件,重新设置工作区,这样OpenFC要关闭所有文件、窗口等,再重新打开,有一个与监视窗口相关的变量没有重新设置,故监视窗口出不来了。
现已修正此bug。
G-Spider
发表于 2010-10-29 11:58:53
forcal 兄,你的forcal32w在我的机子上用不了,说什么:
是不是操作系统的问题,这台是Win7,不过在WinXp上装过没问题
还有如何使用下面的代码?:)
!using["math","sys"];
(:a,b,k,t0)=
t0=clock(),
oo{
a=rand, b=rand,
k=a*b//矩阵乘
},
/1000;
forcal
发表于 2010-10-29 16:06:18
forcal 兄,你的forcal32w在我的机子上用不了,说什么:
2270
是不是操作系统的问题,这台是Win7,不过在WinXp上装过没问题
还有如何使用下面的代码?:)
!using["math","sys"];
(:a,b,k,t0)=
t0=clock(),
oo{ ...
G-Spider 发表于 2010-10-29 11:58 http://bbs.emath.ac.cn/images/common/back.gif
AutoMfc是我写的一个可自动运行扩展名为“afc”的文件的小程序,有一些注册表操作,以建立“afc”文件和AutoMfc之间的关联,没有在win7(我目前没有64位系统)下测试过。
OpenFC是目前最好的演示程序,可演示以上代码,似乎在win7下可以运行。
OpenFC下载:http://www.forcal.net/xiazai/forcal9/openfc32w.rar
forcal
发表于 2010-11-5 22:41:29
计算下列式子:
1:1! + 2! + 3! + ... ... + 1000!
2:1! *2! *3! * ... ... *1000!
Forcal+HugeCalc代码:!using["HugeCalc"];
i: main(:i,a,sum,pro)=
oo{a=HI(0),sum=HI(0),pro=HI(1)},
i=0,(++i<=1000).while{oo{sum.=sum+a.Fac(i), pro.=pro*a}},
printff["\r\nsum=\r\n"], sum.Show(),
printff["\r\npro=\r\n"], pro.Show();耗时约11~12秒。
Mathematica 、maple、matlab等如何呢?
gxqcn
发表于 2010-11-10 16:31:07
LS 的题目就题论题来说,还可以有很多优化,有些是数学算法层面上的,
有些则可以通过调用 HugeCalc 导出的高效函数而提速,
比如,大家可能不常用的函数:Product(..)、SumsOfLikePowers(..)#include <ostream.h>
#include <iostream.h>
#include "../../../HugeCalc_API/CppAPI/Include/HugeCalc.h" // 公共接口
#include "../../../HugeCalc_API/CppAPI/Include/HugeInt.h" // 10进制系统
#pragma message( "automatic link to ../../../HugeCalc_API/CppAPI/Lib/HugeCalc.lib" )
#pragma comment( lib, "../../../HugeCalc_API/CppAPI/Lib/HugeCalc.lib" )
int main(int argc, char* argv[])
{
CHugeInt hi, sum, pro;
CHugeInt * hi_prt;
HugeCalc::EnableTimer( TRUE );
HugeCalc::ResetTimer();
hi = 1;
hi_prt = &hi;
for ( UINT32 i=1; i<1000; ++i )
{
hi = hi * (i+1);
hi_prt = &hi;
}
CVECTOR_HHUGEINT vhi( (const class CHugeInt **const)hi_prt, 1000 );
sum.SumsOfLikePowers( vhi, 1 );
pro.SumsOfLikePowers( vhi, 0 );
//cout << "sum = " << sum.GetStr() << endl;
//cout << "pro = " << pro.GetStr() << endl;
cout << HugeCalc::GetTimerStr() << endl;
return 0;
}如果不输出结果,在我的机器上仅需 0.637215 s;
输出结果,则总耗时 0.881359 s;
如果是输出到 DOS 屏幕,需要的时间略多点,共需要 4.693113 s