我将翻译以下内容,涉及IT技术:
很不幸,对于我的问题,空间的维度并不是固定的(我正在为统计程序中的许多函数编写广义最小值查找器),因此我必须为我想要使用的每个n值编写循环 - 这可能最终会相当大。
我一直在试图想出如何使用递归来解决这个问题,但是还没有看到解决方案 - 尽管我确定有一个解决方案。
解决方案不一定要是递归的,但它必须是通用和高效的(在那个嵌套循环中最内层的行将被调用很多次...)。
我表示要搜索的体积的方式是一个双精度的2D数组:
这将表示一个4D空间,在数组的位置0或1中,每个维度的最小和最大边界分别为其元素。例如:
有什么想法吗?
我正在尝试编写一个算法,让我可以在n维空间内迭代所有所需点,以找到函数f(x)的最小值,其中x是大小为n的向量。
显然,在2维或3维空间中搜索相对简单,你可以简单地执行以下操作:
for(int i = 0; i < x; i++) {
for(int j = 0; j < y; j++) {
//and so on for however many dimensions you want
很不幸,对于我的问题,空间的维度并不是固定的(我正在为统计程序中的许多函数编写广义最小值查找器),因此我必须为我想要使用的每个n值编写循环 - 这可能最终会相当大。
我一直在试图想出如何使用递归来解决这个问题,但是还没有看到解决方案 - 尽管我确定有一个解决方案。
解决方案不一定要是递归的,但它必须是通用和高效的(在那个嵌套循环中最内层的行将被调用很多次...)。
我表示要搜索的体积的方式是一个双精度的2D数组:
double[][] space = new double[2][4];
这将表示一个4D空间,在数组的位置0或1中,每个维度的最小和最大边界分别为其元素。例如:
dim 0 1 2 3
min(0):-10 5 10 -0.5
max(1): 10 55 99 0.2
有什么想法吗?
-0.5
到0.2
?此外,在内部循环中需要什么数据来处理它?是点的数组吗? - mellamokb