بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
وبعد
ارجوا منكم المساعدة في تشغيل هذا البرنامج حيت انه لا يخرج نتائج والبرنامج عبارة عن تطبيق لطريقة توليد ارقام عشوائية تعرف باسم method mid square والبرنامج بالجافا والطريقة المعمول بها البرنامج صحيحة ولكنه لا يخرج نتائج فالمفروض ان تدخل له رقم ابتدائي يكون مكون من عدد خانات زوجية ويخرج لك خمس اعداد عشوائية بالطريقة المذكورة وشرح الطريقة هو كالتالي :
1. Mid-Square Method
The following flowchart represents the steps of generation random numbers (RN) using this method.
Example:
1. Calculate the first five random numbers using mid-square method for the cases:
a- Seed=15, b- Seed=1920.
Answer:
a. Seed=15
15, (15)2=225, 0225, then R1=22
22, (22)2=484, 0484, then R2=48
48, (48)2=2304, 2304, then R3=30
30, (30)2=900, 0900, then R4=90
90, (90)2=8100, 8100, then R5=10
b. Seed=1920
1920, (1920)2=3686400, 03686400, then R1=6864
6864, (6864)2=47114496, 47114496, then R2=1144
1144, (1144)2=1308736, 01308736, then R3=3087
3087, (3087)2=9529569, 09529569, then R4=5295
5295, (5295)2=28037025, 28037025, then R5=0370
اما كود البرنامج فهو كالتالي: بلغة الجافا
import java.*;
import java .io.*;
import java .lang .String .*;
public class Class1
{
public static void main (String[] args)throws IOException
{
BufferedReader key=new BufferedReader(new InputStreamReader(System.in));
System.out.print("Please Enter any number(have an even digite)");
String seed=key.readLine();
int befor=seed.length();//to get the number of digites
if(befor%2!=0)
System.out.println("Please Enter nuber with even digit");
else
{
for(int j=0;j<5;j++)
{
long seed1=Long.valueOf(seed).longValue ();
long square=seed1*seed1;
String str1=key.readLine().valueOf (square);
int last=str1.length();//to get the number of digites after square
int zeros=(2*befor)-last; //to get the diffrent between the number of digites before and after square
char []arr1=str1.toCharArray ();//convert from string to array of character
int total=2*befor;
char []arr;
arr=new char[total];
for(int i=1;i<=zeros;i++)
arr=0;
System.arraycopy(arr1,0,arr,zeros,total);
str1=arr.toString();
int dig=befor/2;
String rn=str1.substring(dig,(arr.length-dig));
System.out.println("The random Nomber is "+rn);
seed=rn;
}
}
System.in.read();
}
}
ارجوا منكم المساعدة وبسرعة وبارك اله فيكم
وشكرا الكم كتير
