Open m-uesaka opened 3 months ago
二重再帰が使われている部分をメモ化で書き直す.
scatter_questions
https://github.com/miyax0227/quizScatterer/blob/d3c3258ca68842e8708aefe33f4774c2ed733a7e/quizscatterer/qs.py#L273-L328
メモ化する.
def scatter_questions( clustering_result: np.ndarray, distance_matrix: np.ndarray, number_of_questions: int, ) -> list[int]: partial_results: list[list[int]] = [[] for _ in range(0, 2 * number_of_questions - 2) ] for index in range(0, number_of_questions): partial_results[index] = [index] for index in range(0, number_of_questions - 1): left_cluster_list = partial_results[int(clustering_result[index, 0])] right_cluster_list = partial_results[int(clustering_result[index, 1])] # joining two lists partial_results[index + number_of_questions] = joined_list return partial_results[2 * number_of_questions - 2]
draw_text_dendrogram
https://github.com/miyax0227/quizScatterer/blob/d3c3258ca68842e8708aefe33f4774c2ed733a7e/quizscatterer/qs.py#L221-L269
これもメモ化する?
clustering_resultの特性上先頭から順に処理すれば必ず下位の計算結果は存在するはず、かつ無駄になる途中計算も無いので再帰にする必要がないということですね。 デンドログラムの方もできればお願いします。
@miyax0227 コード見る限り多分それで問題ないと思ってます. デンドログラムの方も承知しました.
二重再帰が使われている部分をメモ化で書き直す.
Target
scatter_questions
https://github.com/miyax0227/quizScatterer/blob/d3c3258ca68842e8708aefe33f4774c2ed733a7e/quizscatterer/qs.py#L273-L328
メモ化する.
draw_text_dendrogram
https://github.com/miyax0227/quizScatterer/blob/d3c3258ca68842e8708aefe33f4774c2ed733a7e/quizscatterer/qs.py#L221-L269
これもメモ化する?