我正在使用库进行一些间隔计算,并试图优化我的代码。我的定义如下:
using ValidatedNumerics
immutable Vector2D{T}
x::Complex{ValidatedNumerics.Interval{T}}
y::Complex{ValidatedNumerics.Interval{T}}
end
function F(x::Complex{ValidatedNumerics.Interval{BigFloat}},y::Complex{ValidatedNumerics.Interval{BigFloat}})
g = 3(1+(1+x+y)
为了计算加泰罗尼亚数字,我写了两个代码。One (def " Catalan ")递归工作并返回正确的加泰罗尼亚数字。
dicatalan = {}
def catalan(n):
if n == 0:
return 1
else:
res = 0
if n not in dicatalan:
for i in range(n):
res += catalan(i) * catalan(n - i - 1)
dicatalan[n] = res
return dicatalan[n]
另一个(d
我正在使用Chudnovsky算法计算pi的数字,这是我的代码:
qMax = 1000000
L = Vector{BigFloat}(undef, qMax)
L[1] = 13591409
for q in 2:qMax
L[q] = L[q-1] + 545140134
end
X = Vector{BigFloat}(undef, qMax)
X[1] = 1.0
for q in 2:qMax
X[q] = X[q-1] * (-262537412640768000)
end
M = Vector{BigFloat}(undef, qMax)
M[1] = 1
这是我提出的的后续问题。
我试图将调和级数计算成非常大的项,但是,与log(n)+γ相比,我没有得到预期的错误。
我怀疑主要的问题是BigFloat朱莉娅类型。
harmonic_bf = function(n::Int64)
x=BigFloat(0)
for i in n:-1:1
x += BigFloat(1/i)
end
x
end
例如,众所周知,公式H_n - log(n) -γ的下界为1/2/(n+1)。但是,这对于n=10^7来说是有效的,而对于n=10^8则失败了。
n=10^8
γ = big"0.577215664
我正试着把一个大浮子“推”到一个Tuple里。但是得到以下错误:
# where test() is a function with big floats as values
store = Tuple{Any, Any}][]
for i in 1:10
push!(store, test(i))
end
store
错误消息提到了convert()作为解决方案,但我不知道如何转换test()。
我试图在python2.7中使用Bigfloat库。
from bigfloat import *
f1 = Context(precision=2000)
with precision(2000): f1 = 1e-19*1e-19*9e9/((1-1e-18)*(1-1e-18))-1e-19*1e-19*9e9
with precision(100): f2 = 1.6e-27*1.6e-27*6.6e-11/(1e-18*1e-18)
print BigFloat(f1) print f2
Python给了我f1=0,但它不是真的。我用g++测试了它,结果是1.75e-46
我正试着用Julia列出pi的数字
b = 1
n = 10^b
println(3.0)
for i in 0:20
println(-floor(π*n^(i))*10 + floor(π*n^(i+1)))
end
这段代码适用于前15次迭代。然而,在那之后,我得到了负值数字,这显然是毫无意义的。
3.0
1.0
4.0
1.0
.
.
.
0.0
-5.795215566461698e19
2.8976077832308487e20
-2.318086226584679e20
我的猜测是,n^i术语太大,无法处理,这使得我的代码效率极低。有没有
我正在尝试将bigfloat Python包安装到我的mac上,但我不太擅长这类事情。
我已经按照的描述下载了最新的包。文档中写道:
In order to use the bigfloat package you will need to have both the GMP and MPFR libraries already installed on your system.
我认为GMP和MPFR库已经安装在我的系统上了--至少当我搜索它们时,我会看到文件夹中有它们的名称和文件。
当我尝试通过键入以下命令来安装bigfloat时:
python setup.py install
我收到了
根据我对文档的理解,下面的代码应该是舍入一个数字的代码,但它似乎不起作用。
#!/usr/bin/perl
use strict;
use warnings;
use Math::BigFloat;
my $x = Math::BigFloat->new('2.3');
$x->ffround(0, '+inf');
print "$x\n"; # -> 2
我应该做些什么,才能始终将数字整整,例如,在本例中,获取数字3作为输出。
作为一个新来的朱莉娅这个月,9月。2018年,我刚刚习惯了最初不熟悉的"@“宏符号和"!”具有可变输入的函数的符号。我是否正确地认为,这些只是人类阅读的文体符号,而它们并没有真正为编译器提供任何信息?
我在以下代码的上下文中提到了这一点,这些代码似乎与我所知道的朱莉娅中的宏、函数或其他任何东西的样式不匹配。我特别问的是下面的“1234”大号:
julia> big"1234" # big seems to be neither a macro or a function.
1234
julia> typeof(big"1234")
我用perl.My写了一个程序,要求只打印十进制数,不能打印指数数。你能告诉我如何实现它吗?我的程序正在计算表达式1/2power(N),其中n只能取1到200之间的整数。并且只应打印100行。
示例: N=1,打印0.5 N=2,打印0.25
我的程序看起来像这样:
#!/usr/bin/perl
use strict;
use warnings;
my $exp;
my $num;
my $count_lines = 0;
while($exp = <>)
{
next if($exp =~ m/^$/);
我正在尝试并行化一系列使用bigfloat的计算。但是,有一个错误
Error sending result: '[BigFloat.exact('1.0000000', precision=20)]'. Reason: 'TypeError('self._value cannot be converted to a Python object for pickling')'
我要重现的错误是
from bigfloat import *
from multiprocessing import Pool
def f(x,a,b,
我在Pluto notebook中编写了以下代码 begin
function newton_sqrt(x,error_margin)
a=x/2
e=abs(a-x/a)
while e>error_margin
a=(a+x/a)/2
e=abs(a-x/a)
end
println(a)
end
print("Input an integer: ")
x = BigFloat(read
我感兴趣的是以字节的形式获取BigFloat的数字。我得到了一个非常奇怪的错误,我无法调试。我提供了一个最小的错误出现的例子。
function floatToBytes(x::BigFloat)
ret = zeros(UInt8, 4)
xs = significand(x)/2
b = UInt8(0)
for i = 1:4
xs *= 256
b = trunc(UInt8, xs)
ret[i] = b
xs -= b
end
return ret
end
println( floatToBytes(BigFloat(0
我正在学习Julia,我知道有些方法是内置的,比如det()和inv(),它们在矩阵中派上用场。我写了一个代码:
function soln()
# coeff matrix of the given SoLE
A::Matrix{Int64} = Matrix{Int64}([
1 2 -3;
-3 1 -2;
5 3 -4
]);
detA = det(A); # 6.2172489379008774e-15 approximately zero
println("detA = $detA");
if(
在Julia 1.0.0 REPL中,我得到了以下结果:
# Line 1: This make sense. I did not expect a Float64 to equal a BigFloat.
julia> 26.1 == big"26.1"
false
# Line 2: This surprised me when Line 1 is considered. Again, like Line 1, I
# did not expect a Float64 to equal an equivalent BigFloat.
julia> 26.
我试图在Pascal中实现矩形方法。关键是我得到了错误的结果。我得到了0,而C++中的相同代码给了我很好的结果。为什么会这样呢?谢谢。
帕斯卡:
Program HelloWorld(output);
function degrees2radians(x: real) : real;
var
result: real;
begin
result := x * 3.14159 / 180.0;
end;
function fun1(x: real) : real;
var
result: real;
begin
x := degrees2radians(x);
我试图在Freebsd 12下使用perl版本5.20计算批量复制进程的传输速率。我得到了奇怪的结果,因为亚秒间隔中的值总是为零,尽管使用浮点数除法来获得分形的第二个持续时间条目。
详细信息:
对于测量,我使用DateTime::Hires并在两个名为markTime和diffTime的子例程中抽象时间标记&差异。每一步都要打印一个步骤。
#!/usr/bin/env perl
use v5.20.1;
use warnings;
use strict;
use bigint;
use Time::HiRes qw(usleep nanosleep);
use DateTime::Hi
出于教学目的,您将如何编写"julian“Julia 1.0+代码来打印小数点后pi的前2,000位数字?在Julia REPL中,结果应该与这个匹配。
预期输出为:
julia> include("solution.jl")
Pi to 2,000 digits to right of decimal point is:
3.
14159265358979323846264338327950288419716939937510
58209749445923078164062862089986280348253421170679
82148086513282306
我正在试图找到一种方法来切片一个无理数的任意索引,例如。从十进制索引100开始获取Euler数的5位数的片段。这不是一个实际的任务,只是一个我想知道的事情。 I was trying to find an answer here 并在将浮点数转换为字符串后对我的数字进行切片: z=str(format(math.e, '.105f'))[-6:-1] 它确实适用于精度较小的浮点数(直到.50f附近),但对于较大的精度,它会返回零。我想知道如何才能表示和切片长型浮点数。