J'ai une méthode table_data
utilisée pour créer un tableau multidimensionnel pour une table de multiplication. La première ligne et la première colonne de la table sont les mêmes, chaque cellule contenant le produit pour la ligne et la colonne correspondantes. Heres ce qu'il imprime finalement:Comment mémoriser une méthode de génération de tableau multidimensionnelle
2 3 4 . . n
2 4 6 8
3 6 9 12
4 8 12 16
.
.
n
Comme vous pouvez le voir, il y a beaucoup de doublons qui peuvent être memoized. Voici le code pour générer le tableau multidimensionnel:
def table_data(n)
table_header(n).map do |x|
table_header(n).map do |y|
x*y
end
end
end
def table_header(n)
@header_data ||= (1..n).to_a
end
Le procédé table_data
prend du temps quadratique; il fait le double du travail nécessaire (pour x*y
et y*x
). Comment puis-je mémoriser et/ou modifier cette méthode pour réduire le temps d'exécution?