小编Jac*_*cob的帖子

log-sum-exp技巧为什么不递归

我一直在研究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)

虽然我问是否还有其他技巧可以让这个计算在数值上更稳定?

math numerical-methods

9
推荐指数
1
解决办法
3559
查看次数

像桌面浏览器一样放大手机

我有一个页面,它使用css%单位动态流动.在桌面上,如果我调整页面大小看起来很漂亮,文本会使页面更长,以便容纳.在桌面上如果我缩放页面看起来很漂亮,一切都变得更大,并且回流使页面更长.

在移动时,当我缩放页面保持相同的宽高比时,整个事情变得更大,没有重排,它变成了一个使用的窗格.

如何让移动缩放像桌面一样回流?

编辑:


阅读RoyalleBlue评论中的链接后,我添加了以下标记:

<meta name="viewport" content="width=device-width">
Run Code Online (Sandbox Code Playgroud)

这告诉移动设备最初流向"实际"宽度.这是一个非常好的开始.客户对"移动网站"感到满意.但是,它仍然像移动设备一样缩放:页面保持相同的宽高比,整个事物变大,没有回流.所以我仍在寻找答案.

javascript css mobile zoom

7
推荐指数
1
解决办法
520
查看次数

如何判断python中的信号量是否已满

我有一个有界的信号量对象,确保我的程序一次不下载超过一定数量的文件.每个工作线程在开始下载时获取信号量,并在完成后释放它.

我有另一个线程,想要在没有下载任何内容时运行代码.我想要一种锁定方法,直到信号量完全可用.我怎么能用Python做到这一点?

python semaphore

6
推荐指数
1
解决办法
3904
查看次数

openpyxl 线程安全吗?

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: …

python thread-safety openpyxl

5
推荐指数
2
解决办法
3723
查看次数

如何嵌入此jquery.attr if块

我有一段非常简单的代码:

if (toDo.Href) {
    $('#submit').attr("href", toDo.Href);
} else {
    $('#submit').removeAttr("href");
}
Run Code Online (Sandbox Code Playgroud)

我觉得必须有一些方法可以在一行中做到这一点.对于一个类,有toggleclass但没有这样的attr.


澄清

当我使用.toggle和.toggleClass在我的代码中内联其他ifs时,我的代码变得更加清晰.我希望attr有类似的东西.

jquery

-2
推荐指数
1
解决办法
52
查看次数