我试图在Bash脚本中划分两个图像宽度,但bash给出0了结果:
RESULT=$(($IMG_WIDTH/$IMG2_WIDTH))
Run Code Online (Sandbox Code Playgroud)
我研究了Bash指南,我知道我应该使用它bc,在他们使用的互联网的所有例子中bc.在echo我试图把同样的东西放在我的,SCALE但它没有奏效.
以下是我在教程中找到的示例:
echo "scale=2; ${userinput}" | bc
Run Code Online (Sandbox Code Playgroud)
我怎么能让Bash给我一个漂浮0.5?
我正在尝试这样一条线:
for i in {1..600}; do wget http://example.com/search/link $i % 5; done;
Run Code Online (Sandbox Code Playgroud)
我想要输出的是:
wget http://example.com/search/link0
wget http://example.com/search/link1
wget http://example.com/search/link2
wget http://example.com/search/link3
wget http://example.com/search/link4
wget http://example.com/search/link0
Run Code Online (Sandbox Code Playgroud)
但我实际得到的只是:
wget http://example.com/search/link
Run Code Online (Sandbox Code Playgroud) 所以我试图在Fibonacci序列中尽可能紧凑地写出第n个数:
public uint fibn ( uint N )
{
return (N == 0 || N == 1) ? 1 : fibn(N-1) + fibn(N-2);
}
Run Code Online (Sandbox Code Playgroud)
但我想知道我是否可以通过改变来使其更加紧凑和高效
(N == 0 || N == 1)
Run Code Online (Sandbox Code Playgroud)
进入单一比较.是否有一些奇特的位移操作可以做到这一点?
我的程序中有一个奇怪的错误,经过几个小时的调试后,我发现了以下非常愚蠢的行:
int a = b * (c * d * + e)
Run Code Online (Sandbox Code Playgroud)
如果你没有看到它:在d和e我之间写的* +,只是一个+意图.
为什么这会编译,它实际上意味着什么?
由早期代码打高尔夫提示为什么会:
>NaN^0
[1] 1
Run Code Online (Sandbox Code Playgroud)
它非常有意义的NA^0是1,因为NA丢失数据,以及任何升至0号将为1,包括-Inf和Inf.但是NaN应该代表非数字,为什么会这样呢?当?NaN州的帮助页面时,这更令人困惑/担忧:
在R中,基本上所有数学函数(包括基本算术)都应该与+/- Inf和NaN一起作为输入或输出正常工作.
基本规则应该是呼叫和与Infs的关系确实是具有适当数学限制的陈述.
涉及NaN的计算将返回NaN或NA:这两者中的哪一个不能保证并且可能依赖于R平台(因为编译器可能重新排序计算).
这背后有一个哲学原因,还是仅仅与R代表这些常数有关?
我的程序中有两个整数; 让我们称他们为" a"和" b".我想将它们加在一起,结果得到另一个整数.这些是常规的Python int对象.我在想; 如何将它们与Twisted一起添加?performAsynchronousAddition某处有特殊功能吗?我需要一个Deferred吗?反应堆怎么样?是否涉及反应堆?
在原生Python中,没有使用NumPy(为此numpy.nan != numpy.nan)没有NaN,所以我认为Python的浮点==是反身的吗?那么既然它是对称的(a == b暗示的b == a)和传递的(if a==b和b==cthen a==c),我们可以说Python ==是floats 上的等价关系吗?
编辑:好的,让我了解到,有是一个楠:float('nan')(感谢@unutbu)将通过各种操作传播,但任何原生的Python方法返回它(而不是抛出一个异常),如果没有我在这项任务中引入了吗?
我刚刚偶然发现了bash语法:
foo=42
bar=$[foo+1] # evaluates an arithmetic expression
Run Code Online (Sandbox Code Playgroud)
当我用Google搜索时,我找到了 http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_03_04.html#sect_03_04_05:
3.4.6.算术扩展
算术扩展允许评估算术表达式和结果的替换.算术扩展的格式是:
Run Code Online (Sandbox Code Playgroud)$(( EXPRESSION ))...
只要有可能,Bash用户应尝试使用方括号的语法:
Run Code Online (Sandbox Code Playgroud)$[ EXPRESSION ]但是,这只会计算EXPRESSION的结果,并且不进行测试......
在我的bash手册页中,我只能找到如下$(( EXPRESSION ))形式:
foo=42
bar=$((foo+1)) # evaluates an arithmetic expression
Run Code Online (Sandbox Code Playgroud)
那么什么测试不是用$[...]那个做的$((...)),或者$[...]只是遗留版本$((...))?
考虑以下程序:
// http://ideone.com/4I0dT
#include <limits>
#include <iostream>
int main()
{
int max = std::numeric_limits<int>::max();
unsigned int one = 1;
unsigned int result = max + one;
std::cout << result;
}
Run Code Online (Sandbox Code Playgroud)
和
// http://ideone.com/UBuFZ
#include <limits>
#include <iostream>
int main()
{
unsigned int us = 42;
int neg = -43;
int result = us + neg;
std::cout << result;
}
Run Code Online (Sandbox Code Playgroud)
+运算符如何"知道"返回哪个正确的类型?一般的规则是把所有的参数转换为最广泛的类型,但在这里没有明确的"赢家"之间int和unsigned int.在第一种情况下,unsigned int必须选择作为结果operator+,因为我得到了结果2147483648.在第二种情况下,它必须选择int,因为我得到了结果-1.然而,在一般情况下,我没有看到这是如何可判定的.这是我看到的未定义的行为还是其他什么?
这一定是一个基本错误,但我看不出这段代码有什么问题:
.... object is some NSManagedObject ....
let eltType = ((object.valueForKey("type")! as! Int) == 0) ? .Zero : .NotZero
Run Code Online (Sandbox Code Playgroud)
在编译时,我收到此消息:
Ambiguous reference to member '=='
Run Code Online (Sandbox Code Playgroud)
将Int与0比较对我来说似乎并不含糊,所以我错过了什么?