Многопоточность — грубые и рекурсивные многомерные петли. По-другому?

Мне нравится самому разбираться в вещах с точки зрения программирования … Поэтому я думал о методе, позволяющем циклически проходить по многомерным массивам с динамическими измерениями. (в основном для таких вещей, как грубая сила)

Метод, который я придумал для обхода массивов неизвестных измерений, заключается в следующем:

#include <stdio.h>
#include <stdlib.h>

/* a simple example of the method I'm using */
void func(int *v,char *usable,int len,int D,int d)
{
for(v[d] = 0; v[d] < len; v[d]++)
{
if(d+1 < D)
func(v,len,D,d+1);
else
{
for(int i = 0; i < D; i++)
printf("%c",usable[v[i]]);
printf("\r");
}
}
}
int main()
{
int *v,z,min = 4,max = 6;
for(z = min; z <= max; z++)
{
v = malloc(sizeof(int)*z);
func(v,"0123456789",10,z,0);
printf("\n");
free(v);
}
return 0;
}

Я считаю это хорошим элегантным решением, но у меня возникло больше проблем, когда я думал о многопоточности процесса. я бы хотел знать альтернативные решения для этого типа процесса, который я не обнаружил, а также возможные способы многопоточности такой процесс. Один метод, который я попробовал, создавал предопределенный ломти но из-за большого количества значений, которые необходимо обработать, когда цифры или используемые символы увеличиваются, они слишком велики, они переполняют любые нормальные переменные.

Кто-то может спросить: «Зачем вам нужно создавать многопоточную грубую силу». И я бы ответил, что способность создавать многопоточные грубой силы означает способность многопоточности других процессов, таких как решение лабиринта и определение лучшего маршрута.

Заранее благодарю.

0

Решение

Я все еще не понимаю, что вы пытаетесь сделать со своим кодом. Но из твоего описания. Вы сказали, что пытаетесь разработать «метод для обхода многомерных массивов с динамическими измерениями».

Для меня это утверждение говорит о том, что вы хотите перебрать массив n-измерения. Таким образом, он будет проходить через массив [n] или проходить через массив [n] [m] и так далее для любого количества измерений и длины. Это то, что вы пытаетесь сделать? Если это так, вы можете просто использовать шаблонную функцию для циклического перемещения по n-мерному массиву.

0

Другие решения

Других решений пока нет …