JavaRush /Java блогы /Random-KK /Java-да экспонентацияны қалай жасауға болады

Java-да экспонентацияны қалай жасауға болады

Топта жарияланған
Сәлем Әлем! Бірдеңені іздеу немесе форумда көмек сұрау тәжірибелі бағдарламашы үшін де қарапайым нәрсе. Бірақ әзірлеуде өте қарапайым және қарапайым тақырыптар бар, оларды тіпті жасыл бастаушы да білуі керек. Міне, сол тақырыптардың бірі. Бүгін біз Java тілінде экспонентация қалай орындалатыны туралы айтатын боламыз. Java-да экспонентацияны қалай жасауға болады - 1Сізге тапсырма берілгенін елестетіп көрейік: белгілі бір дәрежеде санды табыңыз. Қарапайым естіледі, бірақ шешімді қалай жүзеге асыруға болады? Ең көп таралған әдісті және бірнеше баламаларды қарастырайық. Шешімдерге «сүңгу» жасамас бұрын, алдымен санды дәрежеге көтерудің не екенін еске түсірейік: Java тілінде дәрежені қалай жасауға болады - 2Дәрежеге көтеру - бұл бір санның өзіне бірнеше есе көбейтілетін әрекеті. Көбейтілген сан негіз деп аталады, ал оның еселенген саны көрсеткіш деп аталады. Негіздің осылайша өздігінен көбейтілуінің нәтижесі экспоненциация деп аталады. Мысалы, 8 үшін бұл үшінші дәрежеге 2, өйткені 2x2x2=8. Санды екінші дәрежеге көтеру оны екі есе көбейтетінімізді көрсетеді және әдетте бұл дәреже квадраттық дәреже деп аталады. Яғни, 4 квадрат = 4х4 = 16. Сонымен, біз жадымызды жаңарттық, енді біз Java-да pow-ды қолдану тәсілдеріне тікелей көшеміз - экспонентация әдісі.
  1. Математикалық күш

    Бұл мәселені шешудің ең оңай жолы – математика сабағын пайдалану. Бұл сіз көп жағдайда қолданылатын шешім.

    Как выполнить возведение в степень в Java - 3

    Математика сабағында тригонометрия, геометрия және математиканың басқа аспектілеріне қатысты әдістер бар. Онда әдістер статикалық ретінде жүзеге асырылады, сондықтан оларды класс нысанын жасамай-ақ бірден Math сыныбының аты арқылы шақыруға болады.

    Көрсеткіштік көрсеткіш қалай көрінеді:

    public static int pow(int value, int powValue) {
       return (int) Math.pow(value, powValue);
    }

    Математика класының бұл әдісі double түрінің мәнін қайтаратындықтан, бізге cast (int) түрін қолдануға тура келді (аргументтер де double, бірақ жасырын түрдегі cast қолданылады).

    Ал енді - бонус: қосымша опциялар.

  2. Санның квадратының мәні

    Мүмкін, ең қарапайым нәрседен бастайық.

    Квадраттау әдісі былай жазылады:

    public static int pow(int value){
       return value*value;
    }

    Негізгі қоңырау:

    public static void main(String[] args) {
       System.out.println(Solution.pow(7));
    }

    Мұның бәрі - күрделі немесе қажет емес ештеңе жоқ.

  3. Қуат саны

    Бірақ шаршы сан бізге қажет нәрсе емес. Көбінесе біздің жұмысымызда бізге белгілі бір дәрежеде сан қажет болады, сондықтан келесі нұсқасы сәл күрделірек, бірақ реттелетін java pow мәні бар:

    public static void main(String[] args) {
       System.out.println(Solution.pow(7, 4));
    }
    
    public static int pow(int value, int powValue) {
       int result = 1;
       for (int i = 1; i <= powValue; i++) {
           result = result * value;
       }
       return result;
    }

    Алгоритм өте қарапайым: біз бастапқы нүктенің нәтижесін орнатамыз, содан кейін оны powValue циклі қанша рет іске қосылған болса, сонша мәнге көбейтеміз (powValue рет саны)

  4. Рекурсия

    Келесі әдіс сәл экзотикалық болады, бірақ кем емес салқын.

    Как выполнить возведение в степень в Java - 4

    Рекурсия - әдіске өзін шақыруға мүмкіндік беретін мүмкіндік. Java тілінде мұндай механизм бар және мұндай әдістер сәйкесінше рекурсивті деп аталады.

    Көптеген алгоритмдік есептерді рекурсивті түрде шешуге болады. Бұл да ерекшелік болмайды, сондықтан санды рекурсивті түрде белгілі бір дәрежеге қалай көтеруге болатынын қарастырайық:

    public static int pow(int value, int powValue) {
       if (powValue == 1) {
           return value;
       } else {
           return value * pow(value, powValue - 1);
       }
    }

    Көріп отырғанымыздай, бізде екі жағдай бар:

    1. Рекурсиядан шығу шарты немесе басқаша айтқанда, біздің дәрежелік мән бірге жеткенде, біз кері лақтыра бастаймыз.
    2. Бір әдісті шақыру нәтижесі бойынша мәнді көбейту механизмінің өзі, бірақ powValue - 1.

    Енді жалқау әдістерді, атап айтқанда, «қораптан тыс» әдістерді қарастыратын кез келді.

  5. Үлкен бүтін сан

    BigInteger класының негізгі мақсаты - еркін өлшемдегі бүтін сандарды сақтау, бірақ сонымен бірге оның осы үлкен (немесе онша үлкен емес) сандармен жұмыс істеуге мүмкіндік беретін әртүрлі арифметикалық әдістері бар.

    Как выполнить возведение в степень в Java - 5

    BigInteger туралы толығырақ осы мақалада оқи аласыз .

    Сонымен, BigInteger-ді Java-да пайдалану арқылы экспоненциализация қандай болады?

    public static int pow(int value, int powValue) {
       BigInteger a = new BigInteger(String.valueOf(value));
      return a.pow(powValue).intValue();
    }

    Өте қарапайым және еш қиындықсыз, солай емес пе?

Міне, бүгінгі күннің бәрі осы! Енді сіз экспонентацияның әртүрлі тәсілдері туралы білесіз. Келісемін, бұл қиын тақырып емес еді :)
Пікірлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION