1.برنامه ای بنویسید که چند عدد تصادفی سه رقمی تولید و چاپ کند.

2.برنامه ای بنویسید که بصورت تصادفی 1 یا -1 تولید کنید.

3.برنامه ای بنویسید که یک عدد بصورت تصادفی از رنج های مختلف تولید کند.(مصلن بین 1 تا 10 و بین 50 تا 60 )

4.برنامه ای بنویسید که چند عدد اعشاری بین -1 و 1 بصورت تصادفی تولید و چاپ کند.

5.برنامه ای بنویسید که یک عدد تصادفی بین دو عدد دلخواه تولید کند.

6.برنامه ای بنویسید که اعداد تصادفی خیلی بزرگ تولید کند.(50 رفم مصلن)

7.برنامه ای بنویسید که پنج عدد تصادفی و غیر تکراری تولید کند.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

import java.util.Random;
public class Main {
  public static void main(String[] args) {
    Random rand = new Random();
    for (int i = 1; i <= 100; i++) {
      int randomNum = rand.nextInt((999 - 100) + 1) + 100;
      System.out.println(randomNum);
    }
  }
}

تابع nextInt یک عدد تصادفی از صفر تا یکی قبل ورودی اش تولید میکند(شامل صفر هم میشود) مصلن اگر میخواهید عددی بین صفر تا 9 تولید کنید که شامل صفر و نه بشود باید پارامتر 10 به تابع بدهید.

برای تولید عدد تصادفی بین 5 تا 10 که شامل خود عدد 5 و 10 بشود :

rand.nextInt(6)+5 

 

================================================

2.

 

import java.util.Random;

public class Main {
  public static void main(String[] args) {
    for (int i = 0; i < 100; i++) {
      System.out.println(randomOneOrMinusOne());
    }
  }
  static int randomOneOrMinusOne() {
    Random rand = new Random();
    if (rand.nextBoolean())
      return 1;
    else
      return -1;
  }
}

============================================================================
 
3.
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class Main {
  public static void main(String[] args) {
    RandomInRanges rir = new RandomInRanges(1, 10);
    rir.addRange(50, 60);
    System.out.println(rir.getRandom());
  }
}

class RandomInRanges {
  private final List<Integer> range = new ArrayList<>();

  RandomInRanges(int min, int max) {
    this.addRange(min, max);
  }

  final void addRange(int min, int max) {
    for (int i = min; i <= max; i++) {
      this.range.add(i);
    }
  }

  int getRandom() {
    return this.range.get(new Random().nextInt(this.range.size()));
  }

}

 

 

 

==========================================================

import java.util.Random;
public class Main {
  public static void main(String[] args) {
    Random random = new Random();
    for (int i = 0; i < 1000000000; i++) {
      float f = random.nextFloat() * 2 - 1;
      if (Float.isNaN(f)) {
        System.out.println("NaN!");
      }
    }
  }
}

nan : not a number

=========================================================================

5.

public class Main {
  public static void main(String[] args) {
    int n1 = 1;
    int n2 = 100;
    double Random;
    Random = n2 + (Math.random() * (n1 - n2));
    System.out.println("Your random number is: " + Random);
  }
}

===========================================================================

6.

import java.math.BigInteger;
import java.util.Random;
public class Main {
  public static void main(String... a) {
    int n = 16;

    Random r = new Random();
    byte[] b = new byte[n];
    r.nextBytes(b);
    BigInteger i = new BigInteger(b);

    System.out.println(i);
  }
}

r.nextBytes(b) :

یک آرایه تصادفی از بایت ها هم اندازه آرایه ورودی تولید میکند.

 

=================================================

7.

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Random;
import java.util.Set;
public class Main {
  public static void main(String[] args) {
    Random random = new Random();
    Set<Integer> set = new HashSet<Integer>();
    while (set.size() < 5) {
      set.add(random.nextInt());
    }
    List<Integer> result = new ArrayList<Integer>(set);
    System.out.println(result);
  }
}

ویژگی اینترفیس Set و کلاس هایی که این اینترفیس رو اجرا میکنن اینه که مثل مجموعه های ریاضی عضو تکراری ندارد و شما اگر عضو تکراری رو ادد کنید به مجموعه اضافه نمیشه.