JavaRush /Блоги Java /Random-TG /Чӣ тавр дар Java экспонентатсия кардан мумкин аст

Чӣ тавр дар Java экспонентатсия кардан мумкин аст

Дар гурӯҳ нашр шудааст
Салом Ҷаҳон! Гугл кардани чизе ё дархости кӯмак дар форум ҳатто барои як барномасози ботаҷриба кори маъмулист. Аммо дар таҳия мавзӯъҳое ҳастанд, ки хеле оддӣ ва оддӣ ҳастанд, ки ҳатто як навгони сабз бояд онҳоро донад. Ва ин ҷо яке аз он мавзӯъҳост. Имрӯз мо дар бораи чӣ гуна экспонентатсия дар Java иҷро карда мешавад. Чӣ тавр экспонентатсияро дар Java иҷро кардан мумкин аст - 1Биёед як сония тасаввур кунем, ки ба шумо супориш дода шудааст: ададро ба дараҷаи муайян ёбед. Хеле оддӣ ба назар мерасад, аммо ҳалли онро чӣ гуна бояд амалӣ кард? Биёед усули маъмултарин ва якчанд алтернативаҳоро дида бароем. Ва пеш аз он ки мо ба ҳалли масъалаҳо «ғарқ» кунем, биёед аввал дар хотир дорем, ки баланд бардоштани адад ба қудрат чист: Чӣ тавр экспонентатсияро дар Java иҷро кардан мумкин аст - 2Баланд бардоштани адад амалест, ки дар он як адад ба худ якчанд маротиба зарб мешавад. Шуморае, ки зарб карда мешавад, асос ва миқдори зарб задани он нишондиҳанда номида мешавад. Хуб, натиҷаи ин худафзори асос экспонентатсия номида мешавад. Масалан, барои 8 он 2 ба дараҷаи сеюм аст, зеро 2x2x2=8. Баланд бардоштани адад ба дараҷаи дуюм нишон медиҳад, ки мо онро ду маротиба омил мекунем ва чун қоида, ин қувват қудрати квадратӣ номида мешавад. Яъне, 4 квадрат = 4х4 = 16. Ҳамин тавр, мо хотираи худро тароват додем ва ҳоло мо бевосита ба роҳҳои истифодаи pow дар Java - усули экспонентатсия мегузарем.
  1. Ҳаҷми математика

    Роҳи осонтарини ҳалли ин масъала истифодаи синфи Math аст. Ин ҳалли шумо дар аксари ҳолатҳо истифода мешавад.

    Чӣ тавр дар Java экспонентатсия кардан мумкин аст - 3

    Синфи математика дорои усулҳои марбут ба тригонометрия, геометрия ва дигар ҷанбаҳои математика мебошад. Дар он усулҳо ҳамчун статикӣ амалӣ карда мешаванд, аз ин рӯ шумо метавонед онҳоро фавран тавассути номи синфи Math бидуни сохтани an objectи синф даъват кунед.

    Экспонентатсия чӣ гуна аст:

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

    Мо маҷбур шудем, ки навъи cast (int) -ро истифода бурдем, зеро ин усули синфи Math арзиши навъи 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. Рақам ба қудрат

    Аммо рақами квадратӣ на танҳо ба мо лозим аст. Аксар вақт дар кори мо ба мо рақам то як дараҷа лозим мешавад, аз ин рӯ он чизест, ки versionи каме мураккабтар аст, аммо бо арзиши фармоишии 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

    Мақсади асосии синфи 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