language-agnostic

    1熱度

    2回答

    實施(-1)^n * a有成熟的習慣用法嗎? pow(-1,n) * a的明顯選擇似乎很浪費,(1-2*(n%2)) * a是醜陋的,並不完全有效(兩個乘法和一個加法,而不是設置符號)。我認爲我現在會用n%2 ? -a : a,但引入一個條件似乎也有點可疑。

    2熱度

    1回答

    如果M是一個密集的m×n矩陣並且v是一個n分量向量,那麼產品u = Mv是由u[i] = sum(M[i,j] * v[j], 1 <= j <= n)給出的m分量向量。一個簡單的實現該乘法是 allocate m-component vector u of zeroes for i = 1:m for j = 1:n u[i] += M[i,j] * v[j] e

    1熱度

    1回答

    假設我有一個值類型Foo,並且方法Bar接受對Foo的引用。大多數語言都允許我在堆棧上分配一個新的Foo,並且當我嘗試將它傳遞給Bar時,它會自動將其裝箱。但是,據我所知,這涉及將Foo值複製到堆上,然後使用該引用。 語言是否有可能在堆棧中包含分配垃圾收集對象的方法?當方法結束時,運行時可以檢查對象是否仍在使用,只有這樣它才需要在堆上分配對象,並更新引用。 我想這會提高不保留引用的方法的性能,並且

    2熱度

    2回答

    我知道浮點數是不準確的。不過,我的問題是,哪個「下一個」數字的結果是四捨五入的。 它是下一個更高的嗎?下一個較低的?它是最接近的嗎? 我的猜測是這是一個尾數會發生什麼問題,但我不確定它是否被截斷,無論它取決於結果是否從「下方」創建(例如總和)或「從上面」(例如差異)。還是更容易,它是純粹的任意,只取決於編譯器/體系結構?

    1熱度

    2回答

    Switch語句:我知道他們在做什麼 - 根據慣例,我常常使用它們很多次,當我想根據Enum的值做不同的事情時,但現在它只是打我:爲什麼我們要使用它?它最初的目的是什麼?我的意思是,這樣的: switch(myVar) { case Foo: doSomething(); break; case Bar: doSomethingElse();

    0熱度

    1回答

    對於實施例B的 a = [{foo: '1', things:[1,2]},{foo: '2', things:[3,4]}] b = someFunction(a) 內容現在是: [{foo: '1', thing: 1}, {foo: '1', thing: 2}, {foo: '2', thing: 3}, {foo: '2', thing: 4}] 其中杆從每個派生元素的東西,

    1熱度

    1回答

    我發現動態收縮功能通常已經過時,我能想到的所有原因(堆棧大小爲1 MB,或額外的文件描述符,額外的OS調度開銷很小)似乎不能抵消延遲啓動新線程的延遲開銷。 對於自動收縮(基於超時的)線程池(x86_64硬件上的Posix線程)來演示它仍然是一個可用的模式,最好的用例是什麼?

    1熱度

    1回答

    我有一些數據,我試圖篩選,我無法弄清楚這樣做的一個聰明的方式。比方說,我有3種類型: A,B,C和他們都當我創建一個工廠,只是創建並返回和S型的對象擴展類S. ,好像這將是非常程序化。工廠的僞代碼的執行將是這樣的: class Factory { func create_obj(input_data) -> S { if type(input_data) is A {

    0熱度

    1回答

    我正在尋找一個算法,需要兩個動態的圓形並返回聯繫點。由於某種原因,當試圖搜索這個時,我只能找到如http://ericleong.me/research/circle-circle/這樣的資源,它們描述返回結果速度的算法。

    2熱度

    1回答

    我一直在想這個問題一段時間,現在我決定這樣做,但是我沒有找到任何可以幫助我開始的東西。然而,我在我的浴室裏面臨着一個問題,那就是我的毛巾幾乎不同,尺寸也不一樣,它看起來像(聽起來)一樣。找到一個可以一次對齊所有人的摺疊組合是不可能的。例如, 。我有這4種不同的毛巾,我想要一個程序告訴我哪個表面區域是他們的共同區域,以及如何摺疊它們以實現這一點。 有沒有人有從哪裏以及如何開始這個想法? 謝謝!