「java平移矩阵」java移位

博主:adminadmin 2023-03-21 10:18:08 507

今天给各位分享java平移矩阵的知识,其中也会对java移位进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java编程的矩阵变换问题

/*我的想法是,先把二维矩阵转换成一维矩阵,这个循环一下就可以了,然后把输入的二维位置也转换成一维的位置,依此往前替换,补0,然后把这个一维矩阵再转换成二维矩阵**/

public static void main(String[] args) {

int[][] erwei = new int[][]{{1,10,3},{4,55,6},{73,8,9}};

int[] yiwei = toyiwei(erwei);

int x=1,y=2,num=0;

//要移动的元素在一维矩阵上的位置

num = (y-1)*erwei.length+(x-1);

//替换

for(int i=num;iyiwei.length-1;i++){

yiwei[i] = yiwei[i+1];

}

//补0

yiwei[yiwei.length-1]=0;

//转换为二维矩阵

erwei = toerwei(yiwei,erwei.length,erwei[0].length);

//打印

for(int i=0;ierwei.length;i++){

for(int j=0;jerwei[i].length;j++){

System.out.print(erwei[i][j]+" ");

}

System.out.println();

}

}

//二维矩阵转换成一维矩阵

static int[] toyiwei(int[][] erwei)

{

int[] rs = new int[erwei.length*erwei[0].length];

for(int i=0;ierwei.length;i++){

for(int j=0;jerwei[i].length;j++){

rs[i*erwei.length+j] = erwei[i][j];

}

}

return rs;

}

//一维矩阵转换成二维矩阵

static int[][] toerwei(int[] yiwei,int a,int b)

{

int[][] erwei = new int[a][b];

for(int i=0;ia;i++){

for(int j=0;jb;j++){

erwei[i][j]=yiwei[i*a+j];

}

}

return erwei;

}

JAVA android 矩阵 怎么设置坐标

1、设置图片位置坐标

matrix.postTranslate(x,y) ——这个(x,y)为图片左上角的位置

2、设置图片图片中心点为中心旋转

matrix.postRotate(角度, x, y);——这个(x,y)为图片中心点的位置

3、渲染图片

canvas.drawBitmap( BIT , matrix , new Paint());

java 动态规划矩阵多少种走法

import java.util.Scanner;

public class zhidao3

{

public static void main(String[] args)

{

Scanner scanner = new Scanner(System.in);

int T = scanner.nextInt();

int out[] = new int[T];

scanner.nextLine();

for(int t=0;tT;t++)

{

String a = scanner.nextLine();

char[] ch=a.toCharArray();

int f[][]= new int[ch.length+1][2];

if (ch[0]='Z'ch[0]='A')

{

f[0][1]=2;

f[0][0]=2;

}

if (ch[0]='z'ch[0]='a')

{

f[0][1]=1;

f[0][0]=1;

}

for(int i=1 ;i=ch.length;i++)

{

if (ch[i-1]='Z'ch[i-1]='A')

{

f[i][0] = f[i-1][1] + 2;

f[i][1] = f[i-1][1] + 1;

}

if(ch[i-1]='z'ch[i-1]='a')

{

f[i][0] = f[i-1][0] + 1;

f[i][1] = f[i-1][0] + 2;

}

}

out[t] = Math.min(f[ch.length-1][0],f[ch.length-1][1]);

}

for(int t=0;tT;t++){

System.out.println(out[t]);//最后统一输出

}

scanner.close();

}

}

用JAVA编写矩阵

public static void main(String[] args) throws Exception {

print(create(getNum()));

}

private static int getNum() {

Scanner scanner = new Scanner(System.in);

int n = 0;

do {

System.out.println("请输入要生成的阶数:");

String input = scanner.next();

if (isDigital(input)) {

n = Integer.parseInt(input);

if (n = 0) {

System.out.println("阶数必须大于0");

}

}

} while (n == 0);

return n;

}

private static int[][] create(int n) {

int[][] num = new int[n][n];

int ax = 1, ay = 0, x = 0, y = 0;

for (int m = 1; m = n * n; m++) {

num[x][y] = m;

int tmpx = x + ax;

int tmpy = y + ay;

if (tmpx = n || tmpx 0 || tmpy = n || tmpy 0 || num[tmpx][tmpy] != 0) {

if (ax == 0) {

ax = -ay;

ay = 0;

} else if (ay == 0) {

ay = ax;

ax = 0;

}

}

x += ax;

y += ay;

}

return num;

}

private static void print(int[][] num) {

int length = String.valueOf(num.length * num.length).length();

for (int i = 0; i num.length; i++) {

for (int j = 0; j num[i].length; j++) {

String tmp = String.valueOf(num[i][j]);

while (tmp.length() length) {

tmp = " " + tmp;

}

System.out.print(tmp + " ");

}

System.out.println();

}

}

private static boolean isDigital(String input) {

if (input == null || input.length() == 0) return false;

for (int i = 0; i input.length(); i++) {

char ch = input.charAt(i);

if (!Character.isDigit(ch)) {

System.out.println("输入的阶数必须为数字");

return false;

}

}

return true;

}

运行时输入要生成的阶数就可以了,比如生成问题上的矩阵输入4就可以了。

java 矩阵问题

页面方面 你可以通过一个表格来实现矩阵

然后当提交时利用javascript把矩阵数据组织成JSON数据格式,传送到后台,后台解析JSON入库。

简单来讲就是这样了,

前台:需要你用javascript实现一个可以加行加列的表格。

后台:解析JSON的话有现成的jar包,然后就是动态拼SQL了。

如果你是的是hibernate的话后台需要横表与纵表的转换,Bean的属性应该是

1、行号

2、列号

3、值

好像说的有点混乱,呵呵

java循环矩阵移位

import java.util.Scanner;

public class FiveJuZheng {

public static void main(String[] args) {

int[][] arr = { { 1, 2, 3, 4, 5 }, { 6, 7, 8, 9, 10 },

{ 11, 12, 13, 14, 15 }, { 16, 17, 18, 19, 20 },

{ 21, 22, 23, 24, 25 } };

int x = 0 , y = 0;

boolean flag = true;

Scanner sc = new Scanner(System.in);

do {

System.out.println("请输入两个位移量(注:不能超过5或者-5,用空格分开)");

String readline = sc.nextLine();

String[] numbers = readline.split(" ");

if(numbers.length  2){

System.out.println("警告!输入有误:少于两个数!");

continue;

}

x = Integer.parseInt(numbers[0]);

y = Integer.parseInt(numbers[1]);

if(numbers.length == 2  x  5  x  -5  y  5  y  -5){

flag = false;

}else{

System.out.println("警告!输入有误:数值须在(-5 ,5)内,不包括-5和5!");

}

} while (flag);

arr = xidc(arr, x);

arr = yidc(arr, y);

for (int i = 0; i  5; i++) {

for (int j = 0; j  5; j++) {

System.out.print(arr[i][j] + "\t");

}

System.out.println();

}

}

/**

 * 处理数组下沉

 * @param arr 源数组

 * @param x 下沉行数

 * @return 下沉后的数组

 */

private static int[][] xidc(int[][] arr, int x) {

int[] temp = new int[5];

if (x  0) {

x = 5 + x; //输入为负时换成对应的正数行  上浮2行 等于 下沉3行

}

for (int k = 0; k  x; k++) {

for (int i = 4; i  0; i--) {

int line = i - 1;

temp = arr[i];

arr[i] = arr[line];

arr[line] = temp;

}

}

return arr;

}

/**

 * 处理数组向右移动

 * @param arr 源数组

 * @param y 右移列数

 * @return 移位后数组

 */

private static int[][] yidc(int[][] arr, int y) {

int[] temp = new int[5];

if (y  0) {

y = 5 + y;  //输入为负时换成对应的正数行  左移2列 等于 右移3列

}

for (int k = 0; k  y; k++) {

for (int i = 4; i  0; i--) {

int line = i - 1;

for (int j = 0; j  5; j++) {

temp[j] = arr[j][i];

arr[j][i] = arr[j][line];

arr[j][line] = temp[j];

}

}

}

return arr;

}

}

简测可以达到效果。

java平移矩阵的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java移位、java平移矩阵的信息别忘了在本站进行查找喔。