我想在程序中组合数组。以这些为例:
a = {1,2,3,4,5}
b = {6,7,8,9,10}
这应该产生一个数组,其中包含第一个数组的第一个元素,第二个数组的所有元素除了第一个元素,即{1,7,8,9,10}
。这应该继续用于所有可能的组合,产生这些输出数组:
{1,7,8,9,10} {6,2,8,9,10} {6,7,3,9,10} {6,7,8,4,10} {6,7,8,9,5}...
对于带有第二个数组的第一个数组的2,3,4个元素
{1,2,8,9,10} {6,2,3,9,10} {6,7,3,4,10} {6,7,8,4,5} {1,7,8,9,5}...
{1,7,3,9,10} {6,2,8,4,10} {6,7,3,9,5} {1,7,8,4,10}.....
,反之亦然,第二阵列。
对于我尝试的第一个组合:
For I = 0 To 4
'first array loop
For J = 0 To 4
'second array loop
If I <> J Then
arr(J) = arr2(J)
Else
arr(J)=arr1(J)
End If
Next
Next
答案 0 :(得分:3)
这将为您提供所有可能的组合:
ins = xero.Contact.find("3034b40e-ddd5-45b4-b23c-0f6800029673")
你会这么称呼:
public void highScore ()
{
int highScore = 0;
String line = "";
int x = 0;
try
{
BufferedReader reader = new BufferedReader (new FileReader ("highScores.txt"));
while ((line = reader.readLine ()) != null) // read the score file line by line
{
x++;
}
reader.close ();
}
catch (IOException ex)
{
System.err.println ("ERROR reading scores from file");
}
int[] y = new int [x];
int b = 0;
try
{
BufferedReader reader = new BufferedReader (new FileReader ("highScores.txt"));
while ((line = reader.readLine ()) != null) // read the score file line by line
{
int d = Integer.parseInt (line);
y [b] = d;
b++;
}
reader.close ();
}
catch (IOException ex)
{
System.err.println ("ERROR reading scores from file");
}
int tempVar;
for (int i = 0 ; i < y.length - 1 ; i++)
{
for (int j = 0 ; j < y.length - 1 ; j++)
{
if (y [i] < y [j])
{
tempVar = y [j + 1];
y [j + 1] = y [i];
y [i] = tempVar;
}
}
}
for (int i = 0 ; i < y.length - 1 ; i++)
{
c.println (y [i]);
}
}
它将在活动工作表上输出,这个:
这也具有动态的优点。您可以使用两个以上的数组。唯一的规则是他们需要具有相同数量的值。
唯一的其他限制是工作表上的行数。所以(数组的数量)^(值的数量)不能超过2 ^ 20。