首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >多线程,蛮力和递归多维循环。另一种方式?

多线程,蛮力和递归多维循环。另一种方式?
EN

Stack Overflow用户
提问于 2012-11-08 02:24:11
回答 1查看 742关注 0票数 0

我喜欢用编程来解决问题.所以我想出一种方法来循环多维数组的动态维数。(主要用于暴力之类的东西)

我提出的遍历未知维度数组的方法如下:

代码语言:javascript
运行
复制
#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;
}

我认为这是一个不错的优雅解决方案,但在考虑多线程过程时,我提出了更多的问题。我想知道这类进程的替代解决方案,以及多线程的可能方法--类似这样的进程。我尝试过的一种方法是创建预先确定的块,但由于在数字或可用字符增加过大时需要处理大量的值,因此它们会溢出任何正常变量。

有人可能会问:“为什么你需要创建一个多线程的蛮力。”我想回答的是,创建多线程蛮力的能力意味着多线程其他进程的能力,如迷宫解决和最佳路线确定。

谢谢你的进阶。

EN

回答 1

Stack Overflow用户

发布于 2012-11-08 03:52:54

我仍然不明白你想用你的代码做什么。但根据你的描述。你说过你试图开发一种“循环使用动态维度的多维数组的方法”。

对我来说,这句话说你想要遍历一个n维数组。因此,对于任意数量的尺寸和长度,它都会循环通过arrayn或循环过arrayn等等。这就是你想做的吗?如果是这样的话,您可以简单地使用模板函数循环遍历n维数组。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13281539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档