- ベストアンサー
Javaについてすこし教えてください。Math.random()につい
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Mathクラスのromdomは0.0<=x<1.0の値を返すメソッドなので i = (int)(52 * Math.rondom()); で良いのではないでしょうか。
関連するQ&A
- javaのRandomで『a~z』までの乱数を表示させたいですが・・・。
『a~z』の英小文字をランダムで表示させ、さらにint型変数countを『0~9』までランダムに発生させて取得した数だけ『a~z』をランダムに表示させたいのですが、表示結果が(例)aaaaa・・・ となってしまいます。本当は、acyxd・・・とランダムに表示させたいのですがどうすれば、よいでしょうか? import java.util.*; import java.io.*; class CharCheck{ public char charRandom(){ int n; char c = ' '; Random ran = new Random(); while(true){ n = ran.nextInt(123); if(n >= 97 && n <= 122){ c = (char)n; break; } } return c; } public class RandomTest extends CharCheck{ public static void main(String args[]){ char ch[] = new char[10]; int count = 0; CharCheck ChChk = new CharCheck(); Random ran = new Random(); komoji = ran.nextInt(9);//英小文字をいくつ表示するかランダムで決める? (1以上とする) if(count == 0){ count++; } for(int i=0; i<count; i++){ ch[i] = ChChk.charRandom(); System.out.println(ch[i]); } } }
- ベストアンサー
- Java
- Math.randomは0にはならない? 0になる
・意味が分からないコードがあるので教えてください ■コード for (var i = 0; i < 10; ++i) { switch ((Math.random() * 4) | 0) { case 0: hoge(); break; case 1: …… ■質問 ・これはどういう処理をするコードでしょうか? ・「Math.random … 0 以上1未満」ということは0にはならないのでしょうか? なぜ「 | 0」? ・breakした場合、switchは抜けるけど、for文は継続?
- ベストアンサー
- JavaScript
- javaのプログラム
int型の配列の各要素に1~10の乱数を代入し、各要素の値を縦向きの*のグラフで表示するプログラムを作っているのですが、結果がランダムででるので、自分の書いたプログラムが正しいのかわかりません。ソースを載せますので合っているのか間違っているか教えて下さい。もし間違っているならどこが間違いなのか教えていただけると嬉しいです。よろしくお願いします。 ●ソース import java.util.Random; import java.util.Scanner; class Graph { public static void main(String[] args){ Random rand = new Random(); Scanner stdIn = new Scanner(System.in); System.out.print("要素数:"); int n = stdIn.nextInt(); int a[] = new int[n]; for (int i = 0; i < n; i++) a[i] = 1 + rand.nextInt(10); for (int i = 1; i <= 10; i++){ for (int j = 0; j < n; j++) if (a[j] <= i) System.out.print("* "); else System.out.print(" "); System.out.println(); } } } ●実行例 要素数:12 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- ベストアンサー
- Java
- javaで三角波を合成
javaでbyte配列を使って for(int i=0;i<triangle_wave.length;i++){ double s=0; for(int j=0;j<=2;j++){ double a = (2*j+1)*i*F0*Math.PI*2/Fs;(Math.sin((2*j+1)*i*F0*Math.PI*2/Fs)/(Math.pow((2*j+1),2)))); s += (double)(Math.pow((-1),j)*(Math.sin(a)/(Math.pow((2*j+1),2)))); } triangle_wave[i]= (byte)(110*8*s/(Math.pow(Math.PI,2))); } AudioFormat format = new AudioFormat((float)Fs,16,1,true,false); InputStream bytefile = new ByteArrayInputStream(triangle_wave); File file = new File("test.wav"); AudioInputStream inputstreem = new AudioInputStream(bytefile,format,wave.length); AudioSystem.write(inputstreem,AudioFileFormat.Type.WAVE,file); のような感じで三角波を作ったのですが、これをwavファイルに出力してSonicVisualiserでスペクトルを見ると基本周波数が出てきません。これはどうしてでしょうか? また、量子化ビット数を16から8にするとスペクトルに基本周波数が出てきます。量子化ビット数を2倍にすると周波数も2倍になるということなのでしょうか?
- 締切済み
- 情報工学
- JAVAでの動く波のプログラミング
Javaのプログラミングに関する質問です。 Javaを勉強中なのですが、sin波を動かす式がどうにも出来ません。以下は私が現状で考えたプログラミングです。 int x1, x2, y1, y2; x2 = getWidth()/5; y2 = getHeight()/2; for (int i = 1; i <= 90; i++){ x1 = x2; y1 = y2; x2 = x0+(int)(i/30.0*200); y2 =getHeight()/2 -(int)(a*Math.sin(i/30.0*2*Math.PI/T*t)); g.drawLine(x1, y1, x2, y2); } なんとか独学でこのようなものを考えたのですがまるでダメです。よろしければ止まっている波ではなく動く波のプログラミングの仕方をJavaで教えて頂けると幸いです。
- 締切済み
- Java
- javaでのプログラミング
javaで平均と分散を求めるプログラムを作っているのですが、 分散の出力がうまくいきません。(出力が0になってしまいます) プログラミングとしておかしいところがあれば、教えていただけませんでしょうか 以下プログラムソースです。 public class test{ public static void main(String[] args){ int i,rand; double ave=0 double bun=0 double sum1=0 double sum2=0; int [] data = new int[10]; rand=(int)(Math.random()*100+0.5); for(i=0;i<10;i++){ data[i]=rand; } for(i=0;i<10;i++){ sum1+=data[i]; sum2+=data[i]*data[i]; } ave=sum1/10; bun=(sum2/10) - (ave*ave); System.out.println(ave); System.out.println(bun); } }
- ベストアンサー
- Java
- 6桁の数字を重複なしでランダムに取り出す方法を教えてください。
JAVAにて、6桁の数値を重複なしでランダムに取り出したいのですが、どのようにすればよろしいでしょうか? 下記関数を使って6桁の数値を取り出す事についてはできたのですが、これだと何万分の一(?)ですが、取得数値が重複する可能性があります。これを防止する為にはどうしたらよろしいでしょうか。皆様のお知恵を拝借いたしたく宜しくお願いいたします。 newNo = (int)(Math.random() * 999999 + 100000);
- ベストアンサー
- Java