是否存在一个IEEE双x>0这样sqrt(x*x) ? x,该计算的情况下x*x不会溢出或下溢到Inf,0或反规范多少?
这给出了sqrt返回最接近的可表示结果,并且同样如此x*x(两者都是IEEE标准规定的,"平方根操作被计算为无限精度,然后四舍五入到指定的两个最接近的浮点数之一)围绕无限精确结果的精度").
假设如果存在这样的双打,那么可能有接近1的例子,我写了一个程序来找到这些反例,并且它找不到任何之间1.0和1.0000004780981346.
以前类似的问题完全平方数和浮点数解答了其中的计算情况下,当负的问题x*x并没有涉及到舍入.这个答案对于这个问题是不够的,因为有可能x*x涉及在一个方向上sqrt(x*x)进行舍入,然后涉及在同一方向上进行舍入,从而产生一个不完全正确的答案x.
似乎朱莉娅的所有具体类型都是叶子类型,但反之则不然.例如,Type{Int64}是叶子类型,但它不具体:
julia> Type{Int64}.abstract
true
julia> Type{Int64}.isleaftype
true
Run Code Online (Sandbox Code Playgroud)
我的理解是,这是有道理的,因为没有类型的值Type{Int64}.类型Int64有具体类型DataType.但是,因为Type{Int64}没有非平凡的子类型,所以它被认为是叶子类型.
但是,文档isleaftype有点令人困惑:
isleaftype(T)
Determine whether T is a concrete type that can have instances, meaning its
only subtypes are itself and Union{} (but T itself is not Union{}).
Run Code Online (Sandbox Code Playgroud)
Type{Int64}不能有实例,所以第一句话表明它不是叶子类型.然而,确实它的唯一亚型本身就是Union{}这样,所以第二句话表明它是.
文档是否会混淆叶子类型和具体类型,如果是,那么哪个含义是正确的?
我创建了一个宏,在一段时间不活动后关闭WB.如果我手动打开文件,它工作得很完美,但如果我使用另一个WB中的另一个宏打开文件,它将不会在设置的不活动时间后自动关闭.我用来自动关闭它的代码是:
此工作簿模块:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
stop_Countdown
ThisWorkbook.Save
End Sub
Private Sub Workbook_Open()
start_Countdown
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
stop_Countdown
start_Countdown
End Sub
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
stop_Countdown
start_Countdown
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, _
ByVal Target As Excel.Range)
stop_Countdown
start_Countdown
End Sub
Run Code Online (Sandbox Code Playgroud)
常规模块:
Option Explicit
Public Close_Time As Date
Sub start_Countdown()
Close_Time = Now() + TimeValue("00:00:10")
Application.OnTime Close_Time, "close_WB"
End Sub
Sub stop_Countdown()
Application.OnTime Close_Time, "close_WB", …Run Code Online (Sandbox Code Playgroud) 给定模块层次结构
module A
module B; function foo end; end
module C
"""
bar(x)
Like [`foo`](@ref), but more `bar`.
"""
function bar end
end
end
Run Code Online (Sandbox Code Playgroud)
我怎么能从foo文档串交叉引用bar?我曾尝试A.B.foo,B.foo以及..B.foo没有成功.
Julia中的以下代码:
function foo(a::Vector{AbstractString})
end
foo(["a"])
Run Code Online (Sandbox Code Playgroud)
给出以下错误:
ERROR: MethodError: no method matching foo(::Array{String,1})
Closest candidates are:
foo(::Array{AbstractString,1}) at REPL[77]:2
Run Code Online (Sandbox Code Playgroud)
即使以下代码运行,如预期的那样:
function foo(a::Vector{String})
end
foo(["a"])
Run Code Online (Sandbox Code Playgroud)
此外,AbstractString通常匹配String如下:
function foo(::AbstractString)
end
foo("a")
Run Code Online (Sandbox Code Playgroud)
Vector{AbstractString}如果我有String元素,如何用参数调用函数?
在python中,你可以这样做,让你使用缩短的模块名称:
>>> import tensorflow as tf
Run Code Online (Sandbox Code Playgroud)
从那时起,您可以参考tf,而不必在tensorflow任何地方打字.
Juila有可能这样吗?
我试图找出如何在朱莉娅处理多维数组.我有一个多维数组A = rand(5,5,5).
我试图找出如何获得A[1,1,:]或A[1,:,1]或A[:,1,1]与位置:由输入M给出.
我想出来了
indexData = [:,1,2]
indexData[1],indexData[m] = indexData[m],indexData[1]
data = A[indexData[1],indexData[2],indexData[3]]
Run Code Online (Sandbox Code Playgroud)
但这似乎过于复杂,如果维度A未知,则无法扩展.有没有更好的方法来解决这个问题?
朋友告诉我,之后:
int C = anything;
Run Code Online (Sandbox Code Playgroud)
C == C++会有价值true.这是一个笑话,对经常声称"C与C++不同"的反驳.
但是,由于==不是序列点,我认为这实际上是未定义的行为.程序可能首先进行评估C++,因此C > C++并且C == C++都是未定义的.但是,C >= C++始终会评估为真.当然,当操作数被翻转时也是如此(C++ <= C总是如此,其他一切都是未定义的).
这个分析是否正确?
我经常想要遍历数据帧的长数组或列,并为每个项目查看它是否是另一个数组的成员.而不是做
giant_list = ["a", "c", "j"]
good_letters = ["a", "b"]
isin = falses(size(giant_list,1))
for i=1:size(giant_list,1)
isin[i] = giant_list[i] in good_letters
end
Run Code Online (Sandbox Code Playgroud)
是否有任何矢量化(双向矢量?)方式在朱莉娅这样做?与基本操作符类似,我想做类似的事情
isin = giant_list .in good_letters
Run Code Online (Sandbox Code Playgroud)
我意识到这可能是不可能的,但我只是想确保我没有遗漏一些东西.我知道我可能会使用DataStructures中的DefaultDict做类似但不知道基础中的任何内容.
假设您在Julia中定义了一个新的复合类型以及该类型的变量:
type MyType
?::Int64
?::Vector{Float64}
?::Float64
MyType(?::Int64, ?::Vector{Float64}, ?::Float64) = new(?, ?, ?)
end
mt = MyType(5, [1.2, 4.1, 2], 0.2)
Run Code Online (Sandbox Code Playgroud)
现在,如果您处于REPL模式,只需mt输入mt并按Enter 即可查看值:
mt
MyType(5,[1.2,4.1,2.0],0.2)
Run Code Online (Sandbox Code Playgroud)
如果我想自定义MyType显示变量的方式,我可以定义一个函数并使用它customized_display(mt):
function customized_display(me::MyType)
println("MyType")
println("?:$(me.?), ?:$(me.?), ?:$(me.?)")
end
customized_display(mt)
MyType
?:5, ?:[1.2,4.1,2.0], ?:0.2
Run Code Online (Sandbox Code Playgroud)
但是使用另一个显示值的函数mt似乎是多余的.我需要扩展哪个功能,只需输入mt,就会显示自定义显示?