我需要计算一个非常小的数字列表,如
(0.1)^ 1000,0.2 ^(1200),
然后将它们归一化,使它们总结为一个ie
a1 = 0.1 ^ 1000,a2 = 0.2 ^ 1200
我想计算a1'= a1 /(a1 + a2),a2'= a2(a1 + a2).
我遇到了下溢问题,因为我得到a1 = 0.我怎么能绕过这个?从理论上讲,我可以处理日志,然后log(a1)= 1000*log(0.l)将是一种表示没有下溢问题的方法 - 但为了规范化我需要得到log(a1 + a2) - 我无法计算,因为我不能直接代表a1.
我用R编程 - 据我所知,c#中没有数据类型如Decimal,它可以让你比双精度值更好.
任何建议将不胜感激,谢谢
我有一个字符串s="CCCGTGCC"
和一个子字符串ss="CC"
.我希望得到所有索引,s
然后启动字符串ss
.在我的例子中,我想要取回数组c(1,2,6)
.
是否有任何字符串功能可以实现这一目标?请注意,我的字符串是在表单中"CCCGTGCC"
,而不是c("C","C","C","G","T","G","C","C")
.
grep
只返回字符串中是否有匹配项,而不是字符串中匹配项的索引,除非我遗漏了某些内容.
我正在使用eclipse Indigo cdt调试我的C++项目,并且出于某种原因,当我调试时F*键停止工作.(F8,F6等......允许我转到下一行等)
任何人都有任何想法?谢谢.
我想在单个结构中包含一些变量,以便更容易地输入和输出函数,因为它们被发送很多.问题是其中一个变量是一个单元格数组 - 特别是包含字符串.显然,一旦给出了变量之一
struct(var1,var2,...)
Run Code Online (Sandbox Code Playgroud)
是一个单元格数组,然后它使结构体成为结构的单元格数组,而不是让单元格数组成为结构的内部变量 - 这不是我想要的结果,并且需要大量的代码.
这个问题有解决方案/解决方法吗?
我想知道使用最新的GCC版本是否安全,或者人们通常会返回几个版本(如果有的话).是否存在可以假设(相对)无bug的可信版本,或者我可以安全地假设(对于非救生程序)最新的GCC版本是否可以安全使用?
编辑:
安全 - 我的意思是主要是无bug,即在执行方面.
我正在使用R使用heatmap.2从矩阵创建热图 - 我想将这些图像分组为一个大图像 - 我通常用来实现这一点的是布局() - 但这不起作用,因为热图.2使用布局,显然布局不能递归地工作.
有没有人对如何在没有布局的情况下将2个图像组合在一起,或者如何使布局支持递归调用有任何建议?
mat = matrix(nrow=3,nrow=3,1:9)
layout(matrix(nrow=2,ncol=1))
heatmap.2(mat) ## overrides the layout and produces only one plot that takes whole screen
heatmap.2(mat) ## still only one image
Run Code Online (Sandbox Code Playgroud)
谢谢.
我想获得最新的GCC linux二进制文件,一个简单的链接 - >下载.有谁知道这样的地方吗?我很难找到一个.
当然有可能下载源代码并编译它 - 但http://gcc.gnu.org/install/download.html 中的说明 既冗长又可怕,所以简单地获取二进制文件会很好, 如果我能.
编辑:我不是我的计算机管理员,所以我不能使用apt-get install.
我在使用Brobdingnag软件包时遇到了问题 - 设置完成后
a2 <- as.brob(0.1)^1000,
Run Code Online (Sandbox Code Playgroud)
a2 = exp(-2302.6)
a1 <- as.brob(0.1)^800,
Run Code Online (Sandbox Code Playgroud)
a1 = exp(-1842.1)
使用sum(a1,a2)和sum(a2,a1)得到不同的结果 - 每次结果等于sum函数的第一个参数.似乎总和并没有被Brobdingang包覆盖,即使它应该是?或者也许我做错了什么?
我问这个问题也是对我写的另一个问题的回复,请看这里
[编辑:包裹作者的回答]
嗨丹
这绝对是包中的一个错误; 感谢您的报告!不幸的是,纠正它将花费我相当长的时间.
在此期间,请在下面找到通常的R idiom来计算两个brobs的总和:
> a1 <- as.brob(0.1)^800
> a2 <- as.brob(0.1)^1000
> a1+a2
> a1 <- as.brob(0.1)^800
> a2 <- as.brob(0.1)^1000
> a1+a2
[1] +exp(-1842.1)
> a2+a1
[1] +exp(-1842.1)
> sum(cbrob(a1,a2))
[1] +exp(-1842.1)
> sum(cbrob(a2,a1))
[1] +exp(-1842.1)
>
Run Code Online (Sandbox Code Playgroud) 我有一个调用内部函数的for循环:
some variables
for(int i=0; i< 10000000; i++)
func(variables)
Run Code Online (Sandbox Code Playgroud)
基本上,func获取对某个数组A的引用,并在A [i]中插入值 - 所以我确信每次调用func实际上都会尝试将值插入A中的不同位置,而所有其他输入变量都保持不变与for循环之前相同.所以func是线程安全的.
我可以安全地将代码更改为
some variables
#pragma omp parallel for
for(int i=0; i< 10000000; i++)
func(variables)
Run Code Online (Sandbox Code Playgroud)
根据我对openmp教程的理解,这还不够好 - 因为openmp库不会知道给func的变量是真的线程安全的,所以这会产生尝试执行同步,这会减慢速度,我需要声明变量私有等.但实际上,当尝试上面的代码时,它似乎确实更快和并行工作 - 这是否符合预期?我只是想确保我没有错过任何东西.
func的声明:
func(int i, int client_num, const vector<int>& vec)
Run Code Online (Sandbox Code Playgroud) 我想生成一个列表,其中包含R中数字1:N的所有2 ^ n个子集.如何可能?
expand.grid( rep( list( 0:4), 2))
Run Code Online (Sandbox Code Playgroud)
返回包含0:4大小2的所有子集的数据框 - 但我想要一个列表,其中包含所有大小的所有子集.