Бул макалада биз Java тorндеги математика сабагы тууралуу кыскача маалымат беребиз. Бул класстын методдору жана аларды кантип колдонуу керектиги жөнүндө сүйлөшөлү. Math классы java.lang пакетинде жайгашкан жана бир катар ар кандай математикалык эсептөөлөрдү жүргүзүү үчүн статикалык ыкмалардын жыйындысын камсыз кылат. Төмөндө математика классы пайдалуу болушу мүмкүн болгон эсептөөлөрдүн мисалдары келтирилген:
- Абсолюттук маанилерди эсептөө (модулдук маанилер)
- Тригонометриялык функциялардын маанилерин эсептөө (синус, косинус ж.б.)
- Ар кандай даражаларга көтөрүлүү
- Ар кандай даражадагы тамырларды алуу
- Кокус сандарды түзүү
- Tagеректөө
- Жана башкалар.
- статикалык кош абс (кош а)
- статикалык калкыма абс (флоат а)
- статикалык int abs(int a)
- статикалык узун абс (узун а)
public static void main(String[] args) {
System.out.println(Math.abs(-1)); // 1
System.out.println(Math.abs(-21.8d)); // 21.8
System.out.println(Math.abs(4532L)); // 4532
System.out.println(Math.abs(5.341f)); // 5.341
}
Тригонометриялык функциялардын маанилерин эсептөө
Математика классы ар кандай тригонометриялык функцияларды - синустарды, косинустарды, тангенстерди ж.б. эсептөөгө мүмкүндүк берет. Методдордун толук тизмесин расмий documentация сайтынан тапса болот . Төмөндө бул ыкмалардын тизмеси:- статикалык кош күнөө (кош а)
- статикалык кош кос (кош а)
- статикалык кош күйүү (кош а)
- статикалык кош асин(кош а)
- статикалык кош акос (кош а)
- статикалык кош атан(кош а)
- статикалык кош toDegrees (кош анград)
- статикалык кош Радиандар (кош ангдег)
public static void main(String[] args) {
System.out.println(Math.sin(Math.toRadians(0)));
System.out.println(Math.sin(Math.toRadians(30)));
System.out.println(Math.sin(Math.toRadians(90)));
System.out.println(Math.cos(Math.toRadians(0)));
System.out.println(Math.cos(Math.toRadians(30)));
System.out.println(Math.cos(Math.toRadians(90)));
}
Программа чыгарат:
0.0
0.49999999999999994
1.0
1.0
0.8660254037844387
6.123233995736766E-17
Бул синустардын жана косинустардын tableларына такыр туура келбейт, бул жарым-жартылай градустан радианга которуудагы каталарга байланыштуу.
Экспонентация
Санды күчкө көтөрүү үчүн, Math классы төмөнкү кол тамгасы бар pow ыкмасын берет:static double pow(double a, double b)
Бул ыкма `a` параметрин `b` кубаттуулугуна көтөрөт. Мисалдар:
public static void main(String[] args) {
System.out.println(Math.pow(1,2)); // 1.0
System.out.println(Math.pow(2,2)); // 4.0
System.out.println(Math.pow(3,2)); // 9.0
System.out.println(Math.pow(4,2)); // 16.0
System.out.println(Math.pow(5,2)); // 25.0
System.out.println(Math.pow(1,3)); // 1.0
System.out.println(Math.pow(2,3)); // 8.0
System.out.println(Math.pow(3,3)); // 27.0
System.out.println(Math.pow(4,3)); // 64.0
System.out.println(Math.pow(5,3)); // 125.0
}
Тамырды экстракциялоо
Математика классы квадрат жана куб тамырларды алуу ыкмаларын камсыз кылат. Бул proceduresа үчүн төмөнкү ыкмалар жооптуу:- статикалык кош sqrt(кош а)
- статикалык кош cbrt (кош а)
public static void main(String[] args) {
System.out.println(Math.sqrt(4)); // 2.0
System.out.println(Math.sqrt(9)); // 3.0
System.out.println(Math.sqrt(16)); // 4.0
System.out.println(Math.cbrt(8)); // 2.0
System.out.println(Math.cbrt(27)); // 3.0
System.out.println(Math.cbrt(125)); // 5.0
}
Кокус сандарды түзүү
Кокус сандарды түзүү үчүн, Math классы кокустук ыкмасын камсыз кылат. Бул ыкма 0,0дөн 1,0ге чейинки диапазондо кокустук оң реалдуу (кош) санды жаратат. Метод кол тамгасы мындай көрүнөт:public static double random()
Мисалдарды карап көрөлү:
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
System.out.println(Math.random());
}
}
Негизги ыкманы аткаргандан кийин, консолдо төмөнкүлөр көрсөтүлдү:
0.37057465028778513
0.2516253742011597
0.9315649439611121
0.6346725713527239
0.7442959932755443
Бир аз манипуляциялоо менен, белгилүү бир диапазондо жаткан бүтүн кокус сандарды алуу үчүн Math классынын кокустук ыкмасын колдоно аласыз. Бул жерде мин жана макс эки аргументин алган жана min (кошкон) менен максимумга (кошкон) чейинки аралыкта турган кокус бүтүн санды кайтарган функциянын мисалы келтирилген:
static int randomInARange(int min, int max) {
return (int) (Math.random() * ((max - min) + 1)) + min;
}
RandomInARange ыкмасын сынай турган негизги ыкманы жазалы:
public class MathExample {
public static void main(String[] args) {
// Карта, в которой мы будем хранить количество выпадений Howого-то числа
Map<Integer, Integer> map = new TreeMap<>();
// За 10000 операций
for (int i = 0; i < 10000; i++) {
// Сгенерируем рандомное число от -10 включительно до 10 включительно
final Integer randomNumber = randomInARange(-10, 10);
if (!map.containsKey(randomNumber)) {
// Если карта еще не содержит "выпавшего случайного числа"
// Положим его в карту с кол-вом выпадений = 1
map.put(randomNumber, 1);
} else {
// Иначе, увеличим количество выпадений данного числа на 1
map.put(randomNumber, map.get(randomNumber) + 1);
}
}
// Выведем на экран содержимое карты в формате ключ=[meaning]
for (Map.Entry<Integer, Integer> entry : map.entrySet()){
System.out.println(String.format("%d=[%d]", entry.getKey(), entry.getValue()));
}
}
static int randomInARange(int min, int max) {
return (int) (Math.random() * ((max - min) + 1)) + min;
}
}
Негизги ыкманы иштеткенден кийин, натыйжа төмөнкүдөй болушу мүмкүн:
-10=[482]
-9=[495]
-8=[472]
-7=[514]
-6=[457]
-5=[465]
-4=[486]
-3=[500]
-2=[490]
-1=[466]
0=[458]
1=[488]
2=[461]
3=[470]
4=[464]
5=[463]
6=[484]
7=[479]
8=[459]
9=[503]
10=[444]
Process finished with exit code 0
Tagеректөө
Java тorнде сандарды тегеректөө үчүн куралдардын бири Math классынын ыкмалары болуп саналат. Тагыраак айтканда, тегерек, шып жана пол ыкмалары:- статикалык узун тегерек (кош а)
- static int round (float a)
- статикалык эки кабат (кош а)
- статикалык кош шып (кош а)
public static void main(String[] args) {
System.out.println(Math.round(1.3)); // 1
System.out.println(Math.round(1.4)); // 1
System.out.println(Math.round(1.5)); // 2
System.out.println(Math.round(1.6)); // 2
System.out.println(Math.floor(1.3)); // 1.0
System.out.println(Math.floor(1.4)); // 1.0
System.out.println(Math.floor(1.5)); // 1.0
System.out.println(Math.floor(1.6)); // 1.0
System.out.println(Math.ceil(1.3)); // 2.0
System.out.println(Math.ceil(1.4)); // 2.0
System.out.println(Math.ceil(1.5)); // 2.0
System.out.println(Math.ceil(1.6)); // 2.0
}
Корутунду
Бул макалада биз математика сабагын үстүртөн карап чыктык. Бул классты кантип колдонсоңуз болорун карап чыктык:- Баалуулуктарды эсептөө модулу;
- Тригонометриялык функциялардын маанилерин эсептөө;
- Сандарды бийликке көтөрүү;
- чарчы жана куб тамырларын бөлүп алуу;
- кокус сандарды түзүү;
- Tagерек сандар.
GO TO FULL VERSION