我有一堆浮点数(Java双打),其中大部分都非常接近1,我需要将它们相乘作为更大计算的一部分.我需要做很多事情.
问题是虽然Java双打没有问题,例如:
0.0000000000000000000000000000000001 (1.0E-34)
Run Code Online (Sandbox Code Playgroud)
它们不能代表以下内容:
1.0000000000000000000000000000000001
Run Code Online (Sandbox Code Playgroud)
因此,我迅速失去了精确度(对于Java的双打,限制似乎约为1.000000000000001).
我考虑过只存储减去1的数字,所以例如1.0001将被存储为0.0001 - 但问题是再次将它们相乘我必须加1并且此时我失去了精度.
为了解决这个问题,我可以使用BigDecimals来执行计算(转换为BigDecimal,添加1.0,然后相乘),然后转换回双精度,但我对此的性能影响有严重的担忧.
任何人都可以看到一种避免使用BigDecimal的方法吗?
为清晰起见进行编辑:这是针对大规模协同过滤器,采用梯度下降优化算法.准确性是一个问题,因为协作过滤器通常处理非常小的数字(例如,人们点击产品广告的概率,可能是1000分之一,或10000分之一).
速度是一个问题,因为协作过滤器必须在数千万个数据点上进行训练,如果不是更多的话.
您总是在类中实现哪些方法和接口?
你总是重写equals()吗?如果你这样做,你也做hashcode()吗?的toString()?你是否习惯于实现Comparable接口?
我刚刚编写了一些代码,我需要实现compareTo()并覆盖equals()以使我的程序以理智的方式工作; 我现在开始看到各处使用这些的方法......
你们都在想什么?
在.NET中有没有办法使用Reflection.Emit
,从堆栈中访问最顶层的项目?因此,如果A是最顶层,B则是下一个 - 我想处理B然后是A.将B复制到A 之上是可以的(因为当我到达时它可以简单地"弹出"第二个B).
目前,我宣布当地人:
LocalBuilder loc = il.DeclareLocal(typeof(Foo));
il.Emit(OpCodes.Stloc, loc); // store and pop topmost stack item
// work with (pop) previous stack item
il.Emit(OpCodes.Ldloc, loc); // push old topmost stack item
Run Code Online (Sandbox Code Playgroud)
是否存在不需要显式本地的路由?
我正在编写一个操纵某种社交网络数据的应用程序,因此理想的底层数据结构是加权有向图.我想直接对数据进行操作(和搜索),而不是先将整个图形加载到内存中并在之后进行序列化.
这可以使用标准SQL数据库或键/值存储进行模拟,但效率非常低(对于我想使用的图遍历算法,例如最短路径等).
因为谷歌搜索并没有发现任何有用的结果,所以我只想写自己的想法,但我宁愿使用现有的解决方案(如果有的话,我错过了它),而不是重新发明轮子.该项目是为了有趣/个人研究,因此该软件必须是开源的(并且能够在Linux下运行).
那么,有没有符合上述描述的项目?
谢谢!
为什么人们坚持使用琐碎的数学问题,比如在Fibonacci序列中找到语言基准的数字?这些通常不会优化到相对论速度吗?通常在I/O,系统API调用,对字符串和结构的操作,处理大量数据,抽象面向对象的东西等方面,瓶颈不是首要任务吗?
我应该使用这种形式的switch语句:
switch(msg)
{
case WM_LBUTTONDOWN:
{
char szFileName[MAX_PATH];
HINSTANCE hInstance = GetModuleHandle(NULL);
GetModuleFileName(hInstance, (LPWCH)szFileName, MAX_PATH);
MessageBox(hwnd, (LPCWSTR)szFileName, L"This program is:", MB_OK | MB_ICONINFORMATION);
}
break;
case WM_CLOSE:
DestroyWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, msg, wParam, lParam);
}
return 0;
Run Code Online (Sandbox Code Playgroud)
或者为第一个案例常量做一个函数?
我正在开发一个WPF应用程序,我想知道主窗口是否有可能具有Vista外观.一些应用程序,如MS Live Messenger和谷歌的Chrome已经做到了这一点.
有任何想法吗?
谢谢.
http://pypi.python.org/pypi/simplejson
我只是潜入Python世界,并希望制作一个简单的twitter应用程序,需要安装simplejson但不知道如何设置它并让它工作..
我在Windows系统上
我正在尝试找到复制此C功能的通用方法:
int main(int argc, char** argv){
fprintf(2,"%s: error you did something wrong.\n", argv[0]);
return 1;
}
Run Code Online (Sandbox Code Playgroud)
在java中.到目前为止,唯一的方法是将其硬编码到应用程序中,这很难看.我想得到类似的东西:
someObj.getClass().getSimpleName();
Run Code Online (Sandbox Code Playgroud)
在我的静态主体内,没有回到我自己的课堂.
这甚至可能吗?
我寻找一个好时光并没有把这个变成一个.
重复的问题,请参阅Java中的$ 0(程序名)?发现主要课程?回答
我是.NET开发人员,我习惯于编写标准的WinForms和ASP.NET应用程序.
几个月后,我将参与一个需要Sharepoint开发的项目.问题是......我对于Sharepoint我是零基础,我不知道Sharepoint是如何工作的.
我需要哪些软件/工具才能学习和开发sharepoint应用程序?我注意到有一个"SharePoint Server 2007",我需要它吗?Office怎么样,我需要为Sharepoint开发特殊版本的Office吗?
第二个问题是:这些东西如何连接和整合?Visual Studio,IIS,SharePoint Server,Office ......?
任何关于此的概述将非常感谢:)
谢谢!
java ×3
.net ×2
args ×1
benchmarking ×1
bigdecimal ×1
c ×1
c++ ×1
command-line ×1
database ×1
graph-theory ×1
math ×1
open-source ×1
python ×1
sharepoint ×1
simplejson ×1
winapi ×1
windows ×1
wpf ×1