java数字序列改变数字位置的问题,mchromosome是一个二元数组,int[][];前一个[]代表index,即从0到n-1,共N个(N是个常数),后一个[]是一个从1到k的数字序列,每个序列的数字数目k不一定相等,但是序列

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 12:49:50
java数字序列改变数字位置的问题,mchromosome是一个二元数组,int[][];前一个[]代表index,即从0到n-1,共N个(N是个常数),后一个[]是一个从1到k的数字序列,每个序列的数字数目k不一定相等,但是序列

java数字序列改变数字位置的问题,mchromosome是一个二元数组,int[][];前一个[]代表index,即从0到n-1,共N个(N是个常数),后一个[]是一个从1到k的数字序列,每个序列的数字数目k不一定相等,但是序列
java数字序列改变数字位置的问题,
mchromosome是一个二元数组,int[][];
前一个[]代表index,即从0到n-1,共N个(N是个常数),后一个[]是一个从1到k的数字序列,每个序列的数字数目k不一定相等,但是序列在使用时是已知确定的,由之前函数得出的值赋给它.
我现在要按index的增序,取出mchromosome中后一个[]的数字序列,对其完成下边的操作,并再赋回给对应的index,最后形成一个新的mchromosome.
①Swap:在一个由1-k,k个数字构成的序列中,选取任意两个位置的数字,并交换他们的位置;
②Insert:在一个由1-k,k个数字构成的序列中,随机选取一个数字,并将它插入到剩下的k-1个数字中间的某一个位置,并保证不与之前的序列相同;

java数字序列改变数字位置的问题,mchromosome是一个二元数组,int[][];前一个[]代表index,即从0到n-1,共N个(N是个常数),后一个[]是一个从1到k的数字序列,每个序列的数字数目k不一定相等,但是序列
package tool;

import java.util.Arrays;

public class GuessNumber
{
private static void swap ( int[][] mchromosome )
{
int[] randoms = getRandomIndex (mchromosome[0].length);
for ( int index = 0; index < mchromosome.length; index++ )
{
int temp = mchromosome[index][randoms[0]];
mchromosome[index][randoms[0]] = mchromosome[index][randoms[1]];
mchromosome[index][randoms[1]] = temp;
}
}

private static void insert ( int[][] mchromosome )
{
int[] randoms = getRandomIndex (mchromosome[0].length);
for ( int index = 0; index < mchromosome.length; index++ )
{
if (randoms[0] < randoms[1])
{
for ( int i = randoms[0] + 1; i < randoms[1]; i++ )
{
mchromosome[index][i] = mchromosome[index][i + 1];
}
mchromosome[index][randoms[1]] = mchromosome[index][randoms[0]];
}
else
{
for ( int i = randoms[1] + 1; i < randoms[0]; i++ )
{
mchromosome[index][i] = mchromosome[index][i - 1];
}
mchromosome[index][randoms[1]] = mchromosome[index][randoms[0]];
}
}
}

private static int[] getRandomIndex ( int k )
{
int[] randoms = new int[2];
int a = (int) ( Math.random () * k );
int b = a;
while (b == a)
{
b = (int) ( Math.random () * k );
}
randoms[0] = a;
randoms[1] = b;
System.out.println ("indexs :" + Arrays.toString (randoms));
return randoms;
}

public static void main ( String[] args )
{
int[][] mchromosome = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 }, { 10, 11, 12 }, { 13, 14, 15 } };
swap (mchromosome);
for ( int[] is : mchromosome )
{
System.out.println (Arrays.toString (is));
}

int[][] mchromosome1 = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 }, { 10, 11, 12 }, { 13, 14, 15 } };
insert (mchromosome1);
for ( int[] is : mchromosome1 )
{
System.out.println (Arrays.toString (is));
}
}
}

java数字序列改变数字位置的问题,mchromosome是一个二元数组,int[][];前一个[]代表index,即从0到n-1,共N个(N是个常数),后一个[]是一个从1到k的数字序列,每个序列的数字数目k不一定相等,但是序列 数字序列是怎么排列的 什么是数字序列组 任意数字序列“123456”之类,输出他们所有的排列组合额,我没说清,我要的是程序,用程序输出所有的组合,java程序 Excel2003问题,根据数字个数改变数字的颜色,如下所示: 62-63=1 只需要改变一个数字的位置.不改变符号等式即可成立.怎样改变? pascal数字排列问题列出所有数字从1到n的自然数排列,眼球所产生任意序列中不允许出现重复的数字输入:n(n 一个java问题,随机输入一组数字,从小到大排列,然后表示它是第几次输入的数字(问题在这),要输入几个数?8第1个数字:4第2个数字:3第3个数字:2第4个数字:1第5个数字:8第6个数字:7第7个数字:6第 数字排列问题(pascal语言)列出所有从数字1到数字n的连续自然数的排列,要求所产生的任意数字序列中不允许出现重复的数字.1 62-63=1改变一个数字的位置使等式成立,怎么改? 101-102=1只改变一个数字的位置使等式成立 一个简单的java问题.有0,1,2,这3个数字,输出所有由这三个数字组成的五位数.for(int i1=0;i1 101-102=1,改变数字位置,使成立 逆序数的个小问题“序列的某个数字前移/后移两位,该序列的逆序数奇偶性不变”如何证明 Java输入一系列 数字求奇数、偶数、0的个数 请问:java产生6个数字的随机数怎么写? 编写Java应用程序,求任意一个三位数的数字之和 java如何得到一个数的第一位数字如题