我一直在研究log-sum-exp问题.我有一个以对数形式存储的数字列表,我希望将它们相加并存储在对数中.
天真的算法是
def naive(listOfLogs):
return math.log10(sum(10**x for x in listOfLogs))
Run Code Online (Sandbox Code Playgroud)
许多网站包括: 在C中实现logsumexp? 和 http://machineintelligence.tumblr.com/post/4998477107/ 推荐使用
def recommend(listOfLogs):
maxLog = max(listOfLogs)
return maxLog + math.log10(sum(10**(x-maxLog) for x in listOfLogs))
Run Code Online (Sandbox Code Playgroud)
又名
def recommend(listOfLogs):
maxLog = max(listOfLogs)
return maxLog + naive((x-maxLog) for x in listOfLogs)
Run Code Online (Sandbox Code Playgroud)
我不明白的是,如果推荐算法更好,为什么我们应该递归调用它?那能提供更多的好处吗?
def recursive(listOfLogs):
maxLog = max(listOfLogs)
return maxLog + recursive((x-maxLog) for x in listOfLogs)
Run Code Online (Sandbox Code Playgroud)
虽然我问是否还有其他技巧可以让这个计算在数值上更稳定?
我有一个页面,它使用css%单位动态流动.在桌面上,如果我调整页面大小看起来很漂亮,文本会使页面更长,以便容纳.在桌面上如果我缩放页面看起来很漂亮,一切都变得更大,并且回流使页面更长.
在移动时,当我缩放页面保持相同的宽高比时,整个事情变得更大,没有重排,它变成了一个使用的窗格.
如何让移动缩放像桌面一样回流?
编辑:
阅读RoyalleBlue评论中的链接后,我添加了以下标记:
<meta name="viewport" content="width=device-width">
Run Code Online (Sandbox Code Playgroud)
这告诉移动设备最初流向"实际"宽度.这是一个非常好的开始.客户对"移动网站"感到满意.但是,它仍然像移动设备一样缩放:页面保持相同的宽高比,整个事物变大,没有回流.所以我仍在寻找答案.
我有一个有界的信号量对象,确保我的程序一次不下载超过一定数量的文件.每个工作线程在开始下载时获取信号量,并在完成后释放它.
我有另一个线程,想要在没有下载任何内容时运行代码.我想要一种锁定方法,直到信号量完全可用.我怎么能用Python做到这一点?
openpyxl 线程安全吗?我希望有一个线程更改工作表,而另一个线程定期保存。我想知道是否需要在更改和保存操作周围添加一个锁定对象,或者它是否已内置到 openpyxl 中。我没有在文档中看到任何内容,也没有看到任何有关 openpyxl 中线程的任何先前问题。
阅读您的答案后,我进行了以下测试:
import threading
import random
import time
from openpyxl import Workbook
wb = Workbook()
class openpyxlwriting ( threading.Thread):
def run ( self ):
global wb
ws = wb.get_active_sheet()
c = 1
for a in range(100):
for b in range(10000):
ws.cell(column = a,row=b).value = c
c += 1
print "row ",a
class openpyxlsaving ( threading.Thread):
def run ( self ):
global wb
for a in range(1000):
wb.save('test.xlsx')
print "saved"
openpyxlwriting().start()
time.sleep(1)
openpyxlsaving ().start()
Run Code Online (Sandbox Code Playgroud)
这给了我以下 trasback: …
我有一段非常简单的代码:
if (toDo.Href) {
$('#submit').attr("href", toDo.Href);
} else {
$('#submit').removeAttr("href");
}
Run Code Online (Sandbox Code Playgroud)
我觉得必须有一些方法可以在一行中做到这一点.对于一个类,有toggleclass但没有这样的attr.
当我使用.toggle和.toggleClass在我的代码中内联其他ifs时,我的代码变得更加清晰.我希望attr有类似的东西.