0

主に、1番目の次元と2番目の次元に2つの乱数(3から10の間の整数)を割り当てます

私はこれを持っていましたが、Math.random()メソッドは機能しません;

import java.lang.Math;


public class Homework2 {
public static void main(String[] args){

    double doubMatrix1[][] = (int) (Math.random()*(10-3+1)+3);
    double doubMatrix2[][];
    double doubMatrix3[][];


}
}
4

4 に答える 4

0

Javaで多次元配列を作成するnew <type>[dim1][dim2]には、次のコードのように、を使用します。

Random rand = new Random();

int r1 = rand.nextInt(8) + 3;
int r2 = rand.nextInt(8) + 3;
double doubMatrix[][] = new double[r1][r2];
于 2012-10-14T07:06:35.740 に答える
0

コードの問題は、doubleの行列をintで初期化しようとしていることです。

タイプは等しくなければなりません!

これが修正されたコードです。

import java.lang.Math;

public class Homework2 {
public static void main(String[] args){

    int d1 = (int) (Math.random()*(10-3+1)+3);
    int d2 = (int) (Math.random()*(10-3+1)+3);

    double doubMatrix1[][] = new double[d1][d2];
    double doubMatrix2[][];
    double doubMatrix3[][];


}
}

この助けを願っています

于 2012-10-14T07:23:25.110 に答える
0

Math.random()0.0から1.0の間の分数を返します。したがって、(int) (Math.random()*(10-3+1)+3)3から10までの乱数を1つだけ取得します。しかし、あなたはそれをに割り当てていdouble doubMatrix1[][]ます。したがって、おそらくコンストラクタを間違った方法で呼び出しています。r1, r2先生が教えた方法に従って2つの異なる乱数を生成し、次のようなコンストラクターを呼び出すことになっています。double doubMatrix1[][] = double[r1][r2]

于 2012-10-14T07:33:10.387 に答える
0

これをチェックしてください、これは役に立つかもしれません:

// DMA of 2D array in C++
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int x = 3, y = 3;

int **ptr = new int *[x];

for(int i = 0; i<y; i++)
{
    ptr[i] = new int[y];
}
srand(time(0));

for(int j = 0; j<x; j++)
{
    for(int k = 0; k<y; k++)
    {
        int a = rand()%5;
        ptr[j][k] = a;
        cout<<ptr[j][k]<<" ";
    }
    cout<<endl;
}
}

ここではポインタを使用して2D配列と同じように処理し、制限には%を使用します

于 2013-09-30T17:28:20.377 に答える