我正在嘗試創建一個接收雙精度(Double,Double)和n(Int)範圍的函數,其中將該間隔分成n個相等部分。我知道如果它是一個列表,我在列表中做了Split,但是在元組中並獲得了雙精度,我不知道該怎麼做。 感謝您的幫助將元組拆分爲n個部分
回答
這類似於@ mschmidt的答案,但我認爲一個列表的理解可能是清晰的:
intervals :: Int -> (Double,Double) -> [(Double,Double)]
intervals n (a,b) =
let n' = fromIntegral n
d = (b - a)/n'
in [(a + i*d, a + (i+1)*d) | i <- [0..n'-1]]
捐贈:
> intervals 4 (1,10)
[(1.0,3.25),(3.25,5.5),(5.5,7.75),(7.75,10.0)]
>
如果重複計算的終點冒犯了你,你可以這樣寫:
intervals' :: Int -> (Double,Double) -> [(Double,Double)]
intervals' n (a,b) =
let n' = fromIntegral n
d = (b - a)/n'
x = [a + i*d | i <- [0..n']]
in zip x (tail x)
注意zip x (tail x)
是一個非常標準的方式來獲得連續對列表的元組:
> let x = [1,2,3,4] in zip x (tail x)
[(1,2),(2,3),(3,4)]
>
謝謝!只是一個問題,而不是給予:Int - >(Double,Double) - > [(Double,Double)],(Double,Double) - > Int - >(Double,Double)? – JohnTeiMir
我不知道這個替代簽名(只返回一個元組)應該做什麼功能。你能舉出一個如何調用它以及它應該返回的例子嗎? –
讓我們說:intervls ::(Double,double) - > Int - > [(Double,Double)] – JohnTeiMir
草圖,可能不是最優雅的解決方案:
- 取兩個輸入雙打(我稱他們爲
l
和u
),並計算輸入範圍/區間的寬度。 - 您想計算
n
等寬度的輸出範圍w
。通過將輸入寬度除以n
來計算此w
。 - 構建長度包含值
l+0*w
,l+1*w
,l+2*w
n
的列表,... - 通過在列表中的前兩項組合成一個元組生成輸出元組的列表。刪除列表中的一個元素。繼續,直到只剩下一個元素。
- 試圖抓住所有可能的錯誤
的4元組謝謝!就像你說的:構建一個包含值l + 0 * w,l + 1 * w,l + 2 * w的長度爲n的列表,我如何在這種情況下停止條件? – JohnTeiMir
編寫一個遞歸函數,該函數具有以'n'開頭的整數參數,並在每個遞歸步驟中遞減。如果0達到停止,否則做你的工作,並繼續遞歸。 – mschmidt
- 1. C#:將數組拆分爲n個部分
- 2. 將C數組拆分爲n等分
- 3. Oracle PL/SQL將csv字符串拆分爲n個部分
- 4. 將n個值拆分爲m個塊
- 5. 將mol2分子的數據庫拆分爲N個較小組
- 6. 如何將已排序的RDD拆分爲n個部分並從每個部分獲取第一個元素?
- 7. 將頁面拆分爲2個部分
- 8. 拆分爲兩個部分
- 9. 如何將字符串拆分爲N部分?
- 10. 如何將一個數字拆分爲n個數字的組
- 11. Asible將stdout_line拆分爲數組元素
- 12. PHP:如何將數組拆分爲2個部分?
- 13. 根據鍵模式將數組拆分爲多個部分
- 14. 將100個號碼拆分爲N個相同長度的部分
- 15. 如何將一個Ruby數組拆分(塊)爲X元素的一部分?
- 16. 將數組拆分爲兩個數組
- 17. 使用拆分將字符串拆分爲2個字符組?
- 18. 將列表拆分爲大約相等長度的N個部分
- 19. IOS:如何將UIImage拆分爲部分
- 20. 將字符串拆分爲兩部分
- 21. 將文本拆分爲部分
- 22. 將矢量拆分爲兩部分
- 23. 將屏幕拆分爲兩部分
- 24. 將Spark數據幀拆分爲部分
- 25. 將Android應用拆分爲兩部分
- 26. 將測試類拆分爲部分類?
- 27. 將PDF拆分爲兩部分
- 28. 將NSString拆分爲組件
- 29. 將JSON拆分爲數組
- 30. 將字符串N拆分爲N/X個字符串
爲什麼會有所作爲?如果你有'[1,2]'和'3',那麼你不能簡單地使用'split'來獲得3個元組... –
我假設兩個double是下限/上限。然後有可能計算出'n'個相等的輸出範圍。但沒有進一步的信息,人們只能假設實際的問題是什麼。 – mschmidt
是的,比方說,我得到a,b和n = 4的範圍,我希望最終能夠產生包含每個區間 – JohnTeiMir