JavaRush /Java блогу /Random-KY /Java'да кантип экспонентациялоо керек

Java'да кантип экспонентациялоо керек

Группада жарыяланган
Салам дүйнө! Бир нерсени издөө же форумда жардам суроо тажрыйбалуу программист үчүн да кадимки нерсе. Бирок өнүктүрүүдө ушунчалык жөнөкөй жана жөнөкөй темалар бар, аларды жада калса жашыл башталгыч да бorши керек. Мына ошол темалардын бири. Бүгүн биз Java тorнде экспонентация кантип аткарылары жөнүндө сүйлөшөбүз. Javaда экспонентацияны кантип жасоо керек - 1Сизге тапшырма берилгенин бир азга элестетип көрөлү: белгилүү бир деңгээлде санды табыңыз. Абдан жөнөкөй угулат, бирок чечимди кантип ишке ашыруу керек? Келгиле, кеңири таралган ыкманы жана бир нече альтернативаларды карап көрөлү. Чечимдерге “сүңгүп” кирүүдөн мурун, келгиле, адегенде санды чоңдукка көтөрүү эмне экенин эстеп көрөлү: Java'да экспонентацияны кантип жасоо керек - 2Бир санды чоңдукка көтөрүү – бул бир сан өзүнө бир нече эсе көбөйтүлгөн иш. Көбөйтүлгөн сан база деп аталат, ал эми канча эсе көбөйтүлгөнү көрсөткүч деп аталат. Ооба, базанын бул өз алдынча көбөйүшүнүн натыйжасы экспоненциация деп аталат. Мисалы, 8 үчүн бул үчүнчү даражага 2, анткени 2x2x2=8. Санды экинчи даражага көтөрүү аны эки эселенген фактор кылып жатканыбызды көрсөтөт жана эреже катары бул даража квадраттык даража деп аталат. Башкача айтканда, 4 квадрат = 4х4 = 16. Ошентип, биз эс тутумубузду жаңырттык жана эми Java'да powду колдонуунун жолдоруна түз өттүк - экспонентация ыкмасы.
  1. Математикалык күч

    Бул маселени чечүүнүн эң оңой жолу - математика сабагын колдонуу. Бул көпчүлүк учурларда колдоно турган чечим болуп саналат.

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

    Математика сабагы тригонометрия, геометрия жана математиканын башка аспектилери менен байланышкан ыкмаларды камтыйт. Анда методдор статикалык катары ишке ашырылат, ошондуктан класс an objectисин түзбөстөн, аларды Math классынын аты аркылуу дароо чакыра аласыз.

    Экспонентация кандай болот:

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

    Бизге 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 тorнде мындай механизм бар жана мындай методдор ошого жараша рекурсивдүү деп аталат.

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

    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 жөнүндө көбүрөөк окуй аласыз .

    Ошентип, Java'да BigIntegerди колдонуу менен экспонентация кандай болот?

    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