java ex1 从字符串到double二维数组

题目:将形如"1,2;3,4,5;6,7,8"的字符串以";“为标志成行,”,"为标志成列放入double二维数组中,要求调用方法实现,方法返回double二维数组。

分析:
1.字符串切割为"1,2",“3,4,5”,“6,7,8”,放入字符串数组。
2.再次将每个分字符串切割为单个字符串并转成double型,放入double二维数组中。

ps:
1.split—字符串切割为字符串数组
2.parseDouble—字符串转为double

例如:double a=Double.parseDouble("");)
int 同上:int a=Integer.parseInt("");

AC代码:

public class i{
    public static void main(String[] args){
        String s="1,2;4,5,6;7,8,9";
        double[][]a=A(s);
        for (int i = 0; i < a.length; i++) {
            for (int j = 0; j < a[i].length; j++) {
                System.out.print("d["+i+","+j+"]="+a[i][j]+" ");
            }
            System.out.println();
        }
    }
    public static double[][] A(String s1) {
        double[][] d;
        String[] s2=s1.split(";");
        d=new double[s2.length][];
        for(int i=0;i<s2.length;i++){
            String[] s3=s2[i].split(",");
            d[i]=new double[s3.length];
            for(int j=0;j<s3.length;j++){
                d[i][j]=Double.parseDouble(s3[j]);
            }
        }
        System.out.println("方法调用成功!");
        return d;
    }
}

AC截图
在这里插入图片描述

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
二维FDTD (Finite-Difference Time-Domain) 是一种用于求解 Maxwell 方程组的数值方法,可以用于模拟电磁波在介质的传播。CUDA 和 OpenGL 是两种不同的技术,CUDA 是 NVIDIA 公司开发的用于 GPU 计算的平台,而 OpenGL 是一种用于图形渲染的 API。虽然它们的应用领域不同,但是它们可以结合起来使用,例如在二维FDTD代码,可以使用 CUDA 加速计算,同时使用 OpenGL 将计算结果可视化。下面是一个简单的二维FDTD代码示例: ```c #include <stdio.h> #include <stdlib.h> #include <cuda_runtime.h> #include <GL/glut.h> #define NX 512 #define NY 512 #define BLOCK_SIZE 16 __global__ void fdtd_kernel(float *ex, float *ey, float *hz) { int i = blockIdx.x * blockDim.x + threadIdx.x; int j = blockIdx.y * blockDim.y + threadIdx.y; int idx = i + j * NX; if (i > 0 && i < NX && j > 0 && j < NY) { ex[idx] += 0.5 * (hz[idx] - hz[idx - NY]) / NY; ey[idx] -= 0.5 * (hz[idx] - hz[idx - 1]) / NX; } __syncthreads(); if (i > 0 && i < NX - 1 && j > 0 && j < NY - 1) { hz[idx] -= 0.7 * (ex[idx + NY] - ex[idx] + ey[idx + 1] - ey[idx]) / (NX + NY); } } void display() { glClear(GL_COLOR_BUFFER_BIT); // 绘制计算结果 glBegin(GL_QUADS); for (int i = 0; i < NX - 1; i++) { for (int j = 0; j < NY - 1; j++) { float ex1 = ex[i + j * NX]; float ex2 = ex[(i + 1) + j * NX]; float ex3 = ex[(i + 1) + (j + 1) * NX]; float ex4 = ex[i + (j + 1) * NX]; float ey1 = ey[i + j * NX]; float ey2 = ey[(i + 1) + j * NX]; float ey3 = ey[(i + 1) + (j + 1) * NX]; float ey4 = ey[i + (j + 1) * NX]; float hz1 = hz[i + j * NX]; float hz2 = hz[(i + 1) + j * NX]; float hz3 = hz[(i + 1) + (j + 1) * NX]; float hz4 = hz[i + (j + 1) * NX]; glColor3f((hz1 + hz2 + hz3 + hz4) / 4, (ex1 + ex2 + ex3 + ex4) / 4, (ey1 + ey2 + ey3 + ey4) / 4); glVertex2f(i, j); glVertex2f(i + 1, j); glVertex2f(i + 1, j + 1); glVertex2f(i, j + 1); } } glEnd(); glFlush(); } int main(int argc, char **argv) { // 创建窗口 glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(NX, NY); glutCreateWindow("FDTD"); // 初始化 OpenGL glClearColor(0, 0, 0, 0); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D(0, NX, 0, NY); // 分配内存 float *ex, *ey, *hz; cudaMalloc(&ex, NX * NY * sizeof(float)); cudaMalloc(&ey, NX * NY * sizeof(float)); cudaMalloc(&hz, NX * NY * sizeof(float)); // 初始化场 for (int i = 0; i < NX * NY; i++) { ex[i] = 0; ey[i] = 0; hz[i] = 0; } // 启动计算 dim3 block(BLOCK_SIZE, BLOCK_SIZE); dim3 grid((NX + block.x - 1) / block.x, (NY + block.y - 1) / block.y); for (int t = 0; t < 1000; t++) { fdtd_kernel<<<grid, block>>>(ex, ey, hz); } // 显示计算结果 glutDisplayFunc(display); glutMainLoop(); // 释放内存 cudaFree(ex); cudaFree(ey); cudaFree(hz); return 0; } ``` 在这个示例,我们使用了 CUDA 加速计算,并使用 OpenGL 将计算结果可视化。在主函数,我们首先创建了一个窗口,并初始化 OpenGL。然后我们分配了三个数组 ex、ey 和 hz,分别表示电场 x 方向分量、y 方向分量和磁场。接着我们使用一个双重循环来绘制计算结果,每个格子的颜色由 ex、ey 和 hz 的值决定。最后我们显示窗口,并在循环调用 fdtd_kernel 函数进行计算,共计算 1000 次。需要注意的是,这里的计算仅仅是一个简单的示例,实际需要根据具体问题进行修改。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值