列出您将需要的每个单独的包装(参见#1)或者从包装中导入所有内容(参见#2)会更好吗?
import java.awt.image.ColorModel;
import java.awt.image.ComponentColorModel;
import java.awt.image.ColorConvertOp;
Run Code Online (Sandbox Code Playgroud)
import java.awt.*;
Run Code Online (Sandbox Code Playgroud) 可能重复:
可能导致精度损失的不同行为
代码示例A.
public class Test {
public static void main(String[] args) {
int i = 0;
i = i + 1.5;
}
}
Run Code Online (Sandbox Code Playgroud)
代码示例B.
public class Test {
public static void main(String[] args) {
int i = 0;
i += 1.5;
}
}
Run Code Online (Sandbox Code Playgroud)
不出所料,编译A会产生以下错误.令人惊讶的是,编译B不会产生任何错误,并且它看起来像在双值1.5之前插入一个显式转换为整数.为什么世界会发生这种情况?这违背了我认为我知道的一切!
Test.java:6: possible
loss of precision
found : double
required: int
i = i + 1.5;
^
1 error
Run Code Online (Sandbox Code Playgroud) 在Pylab中,该specgram()函数为给定的幅度列表创建频谱图,并自动为频谱图创建窗口.
我想生成频谱图(瞬时功率由下式给出Pxx),通过在其上运行边缘检测器对其进行修改,然后绘制结果.
(Pxx, freqs, bins, im) = pylab.specgram( self.data, Fs=self.rate, ...... )
Run Code Online (Sandbox Code Playgroud)
问题是每当我尝试Pxx使用imshow或甚至修改修改时NonUniformImage,我都会遇到下面的错误消息.
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/image.py:336:UserWarning:非线性轴不支持图像.warnings.warn("非线性轴不支持图像.")
例如,我正在使用的代码的一部分在下面.
# how many instantaneous spectra did we calculate
(numBins, numSpectra) = Pxx.shape
# how many seconds in entire audio recording
numSeconds = float(self.data.size) / self.rate
ax = fig.add_subplot(212)
im = NonUniformImage(ax, interpolation='bilinear')
x = np.arange(0, numSpectra)
y = np.arange(0, numBins)
z = Pxx
im.set_data(x, y, z)
ax.images.append(im)
ax.set_xlim(0, numSpectra)
ax.set_ylim(0, numBins)
ax.set_yscale('symlog') # see http://matplotlib.org/api/axes_api.html#matplotlib.axes.Axes.set_yscale …Run Code Online (Sandbox Code Playgroud) 我正在使用以下ColdFusion代码计算已用内存.
runtime = CreateObject("java", "java.lang.Runtime").getRuntime();
Run Code Online (Sandbox Code Playgroud)
然后在循环中我执行以下操作来计算已用内存.
var usedGB = (runtime.totalMemory() - runtime.freeMemory()) / 1024.^3; // bytes -> KB -> MB -> GB
Run Code Online (Sandbox Code Playgroud)
这告诉我从我的页面开始就使用了近200 MB.这是CF服务器使用了多少,或者这只是我页面的一些开销?
我很好奇是否可以编写一个函数apply_nth,它接受一个函数,一个参数的数量,以及该参数的值,然后返回一个新的,部分应用的函数.
我得到的感觉是,由于类型系统这是不可能的,但我无法得出令人满意的答案.我也无法想出一个工作型签名.
如果语言更松散,我想代码可能看起来像这样.
apply_nth f 0 x = f x
apply_nth f n x = \a -> apply_nth (f a) (n-1) x
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
haskell functional-programming generic-programming dependent-type
我的教授给了我以下Shell Sort的定义.我也包括了Bubble和Insertion Sort算法.
使用Shell Sort与常规插入排序或冒泡排序有gap=1什么好处?最终,壳牌排序归结为无论如何,对吧?
我不是要你做我的作业.我合法地感到困惑,想要了解发生了什么.
此外,我已经访问过维基百科,看过时间复杂度表,我已经知道他们说了什么.我正在寻找原因,而不是什么.
def shell(a, n):
gap = n / 2
while gap >= 1:
insertion(a, n, gap) # or bubble
gap /= 2
def bubble(a, n, gap=1):
for i in range(n):
for j in range(n-i-gap):
if a[j] > a[j+gap]:
swap(a, j, j+1)
def insertion(a, n, gap=1):
for i in range(1,n):
x = a[i]
j = i-gap
while j>=0 and a[j]>x:
a[j+gap] = a[j]
j-=gap
a[j+gap]=x
Run Code Online (Sandbox Code Playgroud) 我有一个无限的列表,我想选择一对(a,b),其中a和b两个来自列表,该对满足一些属性.使用列表推导似乎不起作用,因为列表是无限的.
我试图找到一对加起来给定数字的素数(参见此代码高尔夫问题).
我已定义primes,这是一个无限的素数列表,但是当我天真地尝试选择如下所示的一对素数时,该过程永远不会终止.
goldbach n = head [(a,b) | a<-primes, b<-primes, a+b==n]
Run Code Online (Sandbox Code Playgroud)
我意识到这是因为生成的素数列表是[(2,2), (2,3), (2,5)...].基本上,a正在成为第一个元素primes,然后,一旦b用尽,它将移动到第二个元素.因为primes是无限的,它永远不会用尽!
有没有一种简单的方法可以使用列表推导来解决这个问题?如果做不到的话,有一个简单的解决方案吗?
来自维基百科的Branch and Bound:
这一步称为剪枝,通常通过维护一个全局变量m(在树的所有节点之间共享)来实现,该变量记录了迄今为止检查的所有子区域中看到的最小上限。任何下界大于m 的节点都可以被丢弃。
旅行商问题的一个简单解决方案是保留一个变量,例如best,表示迄今为止发现的最短哈密顿回路(上限)。
每次我们考虑潜在的新电路中的新步骤时,我们计算当前点的路径成本,例如cost,这是该路径成本的下限,并将其与best变量进行比较。如果在任何时候cost >= best,我们不需要考虑这条路径;我们可以修剪所有以该子路径开头的潜在路径。
这在诸如 C 之类的过程语言中实现并不困难,我们可以在其中创建一个在函数范围内的变量。例如,
int best = -1; // no best path yet
node* solveTSP() {
// best can be consulted and has a consistent
// value across all recursive calls to solveTSP()
...
}
Run Code Online (Sandbox Code Playgroud)
我不清楚这种算法将如何在纯功能上实现。有没有办法模拟维基百科定义中提到的全局变量m?
我知道在 Lisp 中拥有一个全局变量很简单,但是在更纯粹的函数式语言(如 Haskell)中这可能吗?
我知道将3位十六进制css颜色转换为6位数字代码的方法是将每个十六进制数字复制一次,如下所示.
#ABC === #AABBCC
Run Code Online (Sandbox Code Playgroud)
为什么这样工作?为什么不#ABC等同#A0B0C0?
我正在从教授给我的一本书中研究一些成像应用.这本书来自2001年和Eclipse在某些方面告诉我"访问限制:由于对所需库的限制而无法访问类型JPEGImageEncoder/usr/lib/jvm/java-6-openjdk/jre/lib/rt.jar中".
我知道我可以压制这些警告,但这会引起其他问题吗?
我知道可以从ColdFusion实例化一个Java类,但是可以从Java代码实例化ColdFusion CFC吗?
例如(在Java中):
ColdFusionCFC obj = new ColdFusionCFC("filename.cfc");
Run Code Online (Sandbox Code Playgroud)
我想知道是否有可能逐渐从现有的ColdFusion代码库转换到其他基于JVM的语言,而无需立即重写所有内容.
java ×4
coldfusion ×2
haskell ×2
algorithm ×1
audio ×1
coding-style ×1
convention ×1
css ×1
eclipse ×1
libraries ×1
matplotlib ×1
memory ×1
python ×1
sorting ×1
spectrogram ×1
styles ×1