我忘記提到的一件事我之前的帖子問題是矩陣查找方法對字元資料的適應能力較差。 代碼在使用 matrices.JSL 進行集合運算包含函數映射字串它將由小寫字母組成的字串轉換為數值。 這種映射會大大減慢速度。 在相關貼文中, @阿迪-B詢問有關對資料表列執行查找和取代的問題。 同樣,我們正在處理從一個字串到其他字串(在本例中為另一個字串)的映射。
這就帶來了本月的挑戰:將一組值映射到一組新值的最快方法是什麼?
- 對於連續數據,將數值分組為分位數、十分位數(即 10 組)可能是最常見的做法,通常是有意義的。 寫一個函數,分位數組(內維克,定量) ,它採用一個向量和一個大於 1 的正整數,並傳回輸入值所屬的分位數組。 例如,如果
內維克= [1,2,3,4,5,6,7,8,9]和定量= 3
該函數將返回[1,1,1,2,2,2,3,3,3] 。
您必須決定如何處理跨越分位數組邊界的值,特別是在存在重複項的情況下。
- 在處理許多層級的分類資料時,將低計數層級聚合到單一層級通常是有意義的。 建立一個函數聚合低計數(清單中)它接受分類值的輸入列表並傳回一個列表,該列表將計數較高的值對應到其自身,並將計數較低的值對應到單一新群組。 如何確定低計數的截止值是挑戰的一部分。
- 參考上面提到的帖子,建立一個函數尋找和替換(清單中,地圖)它接受一個字串列表,並且對於每一項,使用作為第二個參數提供的關聯數組進行從一個子字串到一個新子字串的映射。 該映射可以是一對一或多對一的。
- (額外加分)搜尋字串清單可以比洛克? 的目的映射字串是將字串轉換為數字,所以本地排序,它使用二分搜索,可以使用。 本地排序比洛克。 嘗試建立一個函數, locSortedString(字串列表,字串)找到字串的位置字串從排序後的字串列表中字串列表。 很難想像創造比這更快的東西洛克事先不知道可能出現的字串值。 考慮到這一點,假設所有字串都來自我們使用的單字列表挑戰1 。 它附在下面。
祝你好運!