Multithreading 从给定字符生成给定长度的所有字符串
我想从给定的字符生成给定长度的字符串。字符的顺序很重要,我也想使用多个线程来生成它。以下是几个例子:Multithreading 从给定字符生成给定长度的所有字符串,multithreading,algorithm,language-agnostic,Multithreading,Algorithm,Language Agnostic,我想从给定的字符生成给定长度的字符串。字符的顺序很重要,我也想使用多个线程来生成它。以下是几个例子: chars: a,b,c,d length: 1 output: a b c d chars: a,b,c,d length: 2 output: aa ab ac ad bb ba bc bd cc ca cb cd dd da db dc 我尝试过这个算法: 注意:这是伪代码 func generate(set, str, k){ if (k == 0){ pri
chars: a,b,c,d
length: 1
output:
a
b
c
d
chars: a,b,c,d
length: 2
output:
aa
ab
ac
ad
bb
ba
bc
bd
cc
ca
cb
cd
dd
da
db
dc
我尝试过这个算法:
注意:这是伪代码
func generate(set, str, k){
if (k == 0){
print str;
return;
}
for (c in set) {
newString = str + c;
generate(set, newString, k-1);
}
}
但是,我不知道如何使用多线程。我读过的所有其他算法都不适合我的需要。此算法不需要使用多线程。for循环仅用于生成所需长度的字符串。在java中,代码是这样的
import java.util.Random;
public class RandomString2 {
static String[] option = {"a","b","v","k"};
static String getRandomElement()
{
int idx = new Random().nextInt(option.length);
return option[idx];
}
static String getRandomString(int length)
{
String result="";
for(int i = 1; i<=length ; i++)
{
result += getRandomElement();
}
return result;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(getRandomString(5)); // pass string length as parameter
}
}
import java.util.Random;
公开课2{
静态字符串[]选项={“a”、“b”、“v”、“k”};
静态字符串getRandomElement()
{
int idx=new Random().nextInt(option.length);
返回选项[idx];
}
静态字符串getRandomString(整数长度)
{
字符串结果=”;
对于(int i=1;iIn what programming language?正确标记您的问题,并展示您的研究成果,我不关心编程语言,只要它不是brainfuck.Python那样的东西,您可以迭代itertools.product('abcd',repeat=2)
以获得第二个所需的输出。如果我能正确理解,是否介意使用itertools.product('abcd',repeat=2)进一步解释我得到“ab”?我想使算法多线程,因为我计划将其用于许多组合。我不知道您计划执行什么。但多线程用于单独的执行路径。我已经回答了您的特定问题。您最好发布一些代码。我可能误解了然而,我想要的是在多个线程/处理器之间分割计算,这样我可以更快地计算结果。