Skip to content

Ismaxis/Paradigms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Solutions of Paradigms HW (M3136)

ITMO CT 2023-y1-spring

Course by kgeorgiy


Условия Π΄ΠΎΠΌΠ°ΡˆΠ½ΠΈΡ… Π·Π°Π΄Π°Π½ΠΈΠΉ

Π”ΠΎΠΌΠ°ΡˆΠ½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ 15. Π Π°Π·Π±ΠΎΡ€ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π½Π° Prolog

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ

  • Base
    • Код Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Ρ„Π°ΠΉΠ»Π΅ prolog-solutions/expression.pl.
  • SinCos (32, 34). Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ:
    • ΡƒΠ½Π°Ρ€Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ:
      • op_sin (sin) – синус, sin(4846147) ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π²Π½ΠΎ 1;
      • op_cos (cos) – косинус, cos(5419351) ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π²Π½ΠΎ 1.
  • SinhCosh (33, 35). Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ:
    • ΡƒΠ½Π°Ρ€Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ:
      • op_sinh (sinh) – гипСрболичСский синус, sinh(3) Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ большС 10;
      • op_cosh (cosh) – гипСрболичСский косинус, cosh(3) Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ мСньшС 10.
  • Variables. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ:
    • ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, состоящих ΠΈΠ· ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ количСства Π±ΡƒΠΊΠ² XYZ Π² любом рСгистрС
      • НастоящСС имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ опрСдСляСтся ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π±ΡƒΠΊΠ²ΠΎΠΉ Π΅Π΅ ΠΈΠΌΠ΅Π½ΠΈ
  • VarBoolean (36, 37). Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Variables ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ:
    • БулСвских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ
      • АргумСнты: число большС 0 β†’ true, ΠΈΠ½Π°Ρ‡Π΅ β†’ false
      • Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: true β†’ 1, false β†’ 0
      • op_not (!) - ΠΎΡ‚Ρ€ΠΈΡ†Π°Π½ΠΈΠ΅: !5 Ρ€Π°Π²Π½ΠΎ 0
      • op_and (&&) – ΠΈ: 5 & -6 Ρ€Π°Π²Π½ΠΎ 0
      • op_or (||) - ΠΈΠ»ΠΈ: 5 & -6 Ρ€Π°Π²Π½ΠΎ 1
      • op_xor (^^) - ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π΅ ΠΈΠ»ΠΈ: 5 ^ -6 Ρ€Π°Π²Π½ΠΎ 1
  • VarImplIff (38, 39). Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Boolean ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ:
    • БулСвских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ
      • op_impl (->) – импликация (правоассоциативна): -4 -> 1 Ρ€Π°Π²Π½ΠΎ 1
      • op_iff (<->) - Ρ‚ΠΎΠ³Π΄Π° ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°: 2 <-> 6 Ρ€Π°Π²Π½ΠΎ 1

Π”ΠΎΠΌΠ°ΡˆΠ½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ 14. Π”Π΅Ρ€Π΅Π²ΠΎ поиска Π½Π° Prolog

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ

  • Базовая
    • Код Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Ρ„Π°ΠΉΠ»Π΅ prolog-solutions/tree-map.pl.
  • Keys (32, 34)
    • Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ:
      • map_keys(Map, Keys), Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ Π² порядкС возрастания.
  • Value (33, 35)
    • Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ:
      • map_values(Map, Values), Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅Π΅ значСния Π² порядкС возрастания ΠΊΠ»ΡŽΡ‡Π΅ΠΉ.
  • PutIfAbsent (36, 37)
    • Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ map_putIfAbsent(Map, Key, Value, Result), Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.
  • PutCeiling (38, 39)
    • Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°:
      • map_getCeiling(Map, Key, Value), Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΊΠ»ΡŽΡ‡Ρƒ, Π±ΠΎΠ»ΡŒΡˆΠ΅ΠΌΡƒ Π»ΠΈΠ±ΠΎ Ρ€Π°Π²Π½ΠΎΠΌΡƒ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ;
      • map_putCeiling(Map, Key, Value, Result), Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΊΠ»ΡŽΡ‡Ρƒ, Π±ΠΎΠ»ΡŒΡˆΠ΅ΠΌΡƒ Π»ΠΈΠ±ΠΎ Ρ€Π°Π²Π½ΠΎΠΌΡƒ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ (Ссли Ρ‚Π°ΠΊΠΎΠΉ сущСствуСт).

Π”ΠΎΠΌΠ°ΡˆΠ½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ 13. ΠŸΡ€ΠΎΡΡ‚Ρ‹Π΅ числа Π½Π° Prolog

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ

  • Базовая
    • Код Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Ρ„Π°ΠΉΠ»Π΅ prolog-solutions/primes.pl.
  • Square (32, 34)
    • Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ square_divisors(N, D), Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅Π΅ Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ NΒ²: square_divisors(6, [2, 2, 3, 3]).
  • Cube (33, 35)
    • Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ cube_divisors(N, D), Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅Π΅ Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ NΒ³: cube_divisors(6, [2, 2, 2, 3, 3, 3]).
  • Compact (36, 37)
    • Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ compact_prime_divisors(N, CDs), Π³Π΄Π΅ CDs β€” список ΠΏΠ°Ρ€ (простоС, ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ): compact_prime_divisors(120, [(2, 3), (3, 1), (5, 1)]).
  • Divisors (38, 39)
    • Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ divisors_divisors(N, Divisors), Π³Π΄Π΅ Divisors β€” список Ρ€Π°Π·Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° простыС Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ числа N: divisors_divisors(12, [[], [2], [3], [2,2], [2,3], [2,2,3]]).

Для запуска тСстов ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ скрипты TestProlog.cmd ΠΈ TestProlog.sh

  • Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ скачан Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ.
  • Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ prolog (ΠΈΡ… нСльзя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²).
  • ПолноС имя класса тСста указываСтся Π² качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, prtest.primes.PrimesTest.
  • ВСстируСмоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅.

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΊ лСкциям ΠΏΠΎ Prolog

ЛСкция 1. Π€Π°ΠΊΡ‚Ρ‹, ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΈ вычислСния

ЛСкция 2. Π—Π°Π΄Π°Ρ‡ΠΈ, унификация ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹

ЛСкция 3. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² строку ΠΈ Ρ€Π°Π·Π±ΠΎΡ€

Π”ΠΎΠΌΠ°ΡˆΠ½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ 12. ΠšΠΎΠΌΠ±ΠΈΠ½Π°Ρ‚ΠΎΡ€Π½Ρ‹Π΅ парсСры

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ

  • Base
    • Код Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Ρ„Π°ΠΉΠ»Π΅ clojure-solutions/expression.clj.
  • Variables. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ:
    • ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, состоящих ΠΈΠ· ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ количСства Π±ΡƒΠΊΠ² XYZ Π² любом рСгистрС
      • НастоящСС имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ опрСдСляСтся ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π±ΡƒΠΊΠ²ΠΎΠΉ Π΅Π΅ ΠΈΠΌΠ΅Π½ΠΈ
  • IncDec (32, 34). Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Variables ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ:
    • Π£Π½Π°Ρ€Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ:
      • Inc (++) – ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚, (33 ++) Ρ€Π°Π²Π½ΠΎ 34;
      • Dec (--) – Π΄Π΅ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚, (33 --) Ρ€Π°Π²Π½ΠΎ 32.
  • UPowLog (33, 35). Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Variables ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ:
    • Π£Π½Π°Ρ€Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ:
      • UPow (**) – Π²ΠΎΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ, (8 **) ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π²Π½ΠΎ 2981;
      • ULog (//) – Π½Π°Ρ‚ΡƒΡ€Π°Π»ΡŒΠ½Ρ‹ΠΉ Π»ΠΎΠ³Π°Ρ€ΠΈΡ„ΠΌ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠΉ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹, (2981 //) ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π²Π½ΠΎ 8.
  • Boolean (36, 37). Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Variables ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ:
    • БулСвских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ
      • АргумСнты: число большС 0 β†’ true, ΠΈΠ½Π°Ρ‡Π΅ β†’ false
      • Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: true β†’ 1, false β†’ 0
      • Not (!) - ΠΎΡ‚Ρ€ΠΈΡ†Π°Π½ΠΈΠ΅: !5 Ρ€Π°Π²Π½ΠΎ 0
      • And (&&) – ΠΈ: 5 & -6 Ρ€Π°Π²Π½ΠΎ 0
      • Or (||) - ΠΈΠ»ΠΈ: 5 & -6 Ρ€Π°Π²Π½ΠΎ 1
      • Xor (^^) - ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π΅ ΠΈΠ»ΠΈ: 5 ^ -6 Ρ€Π°Π²Π½ΠΎ 1
      • ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΡŽ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°: ^^, ||, &&, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ
  • ImplIff (38, 39). Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Boolean ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ:
    • БулСвских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ
      • Impl (->) – импликация (правоассоциативна): -4 -> 1 Ρ€Π°Π²Π½ΠΎ 1
      • Iff (<->) - Ρ‚ΠΎΠ³Π΄Π° ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°: 2 <-> 6 Ρ€Π°Π²Π½ΠΎ 1
      • ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΡŽ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°: <->, ->, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Boolean

Π”ΠΎΠΌΠ°ΡˆΠ½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ 11. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Π΅ выраТСния Π½Π° Clojure

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ

  • Базовая
    • Код Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Ρ„Π°ΠΉΠ»Π΅ clojure-solutions/expression.clj.
  • SinCos (32, 34). Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ:
    • ΡƒΠ½Π°Ρ€Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ:
      • Sin (sin) – синус, (sin 4846147) ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π²Π½ΠΎ 1;
      • Cos (cos) – косинус, (cos 5419351) ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π²Π½ΠΎ 1.
  • SinhCosh (33, 35). Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ:
    • ΡƒΠ½Π°Ρ€Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ:
      • Sinh (sinh) – гипСрболичСский синус, (sinh 3) Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ большС 10;
      • Cosh (cosh) – гипСрболичСский косинус, (cosh 3) Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ мСньшС 10.
  • MeansqRMS (36, 37). Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ:
    • ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ числа Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²:
      • Meansq (meansq) – срСднСС ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠ², (meansq 2 10 22) Ρ€Π°Π²Π½ΠΎ 196;
      • RMS (rms) – Root mean square, (rms 2 10 22) Ρ€Π°Π²Π½ΠΎ 14;
  • SumexpLSE (38, 39). Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ:
    • ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ числа Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²:
      • Sumexp (sumexp) – сумма экспонСнт, (sumexp 2 3 16) ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π²Π½ΠΎ 8886137;
      • LSE (lse) – LogSumExp, (lse 2 3 16) ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π²Π½ΠΎ 16;

Π”ΠΎΠΌΠ°ΡˆΠ½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ 10. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ выраТСния Π½Π° Clojure

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ

  • Base
    • Код Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Ρ„Π°ΠΉΠ»Π΅ clojure-solutions/expression.clj.
  • ExpLn (32, 34). Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ:
    • ΡƒΠ½Π°Ρ€Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ:
      • exp – экспонСнта, (exp 8) ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π²Π½ΠΎ 2981;
      • ln – Π½Π°Ρ‚ΡƒΡ€Π°Π»ΡŒΠ½Ρ‹ΠΉ Π»ΠΎΠ³Π°Ρ€ΠΈΡ„ΠΌ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠΉ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹, (ln -2981) ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π²Π½ΠΎ 8.
  • ArcTan (33, 35). Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ:
    • ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ:
      • atan – арктангСнс, (atan 1256) ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π²Π½ΠΎ 1.57;
      • atan2 – арктангСнс, (atan2 841 540) ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π²Π½ΠΎ 1.
  • SumexpLSE (36, 37). Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ:
    • ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ числа Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²:
      • sumexp – сумма экспонСнт, (sumexp 2 3 16) ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π²Π½ΠΎ 8886137;
      • lse – LogSumExp, (lse 2 3 16) ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π²Π½ΠΎ 16;
  • MeansqRMS (38, 39). Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ:
    • ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ числа Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²:
      • meansq – срСднСС ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠ², (meansq 2 10 22) Ρ€Π°Π²Π½ΠΎ 196;
      • rms – Root mean square, (rms 2 10 22) Ρ€Π°Π²Π½ΠΎ 14;

Π”ΠΎΠΌΠ°ΡˆΠ½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ 9. ЛинСйная Π°Π»Π³Π΅Π±Ρ€Π° Π½Π° Clojure

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ

  • Базовая
    • Код Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Ρ„Π°ΠΉΠ»Π΅ clojure-solutions/linear.clj.
  • Shapeless (32 - 35)
    • Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ поэлСмСнтного слоТСния (s+), вычитания (s-), умноТСния (s*) ΠΈ дСлСния (sd) чисСл ΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² любой (Π² Ρ‚ΠΎΠΌ числС, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ) Ρ„ΠΎΡ€ΠΌΡ‹. НапримСр, (s+ [[1 2] 3] [[4 5] 6]) Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π½ΠΎ [[5 7] 9].
  • Tensor (36, 37)
    • НазовСм Ρ‚Π΅Π½Π·ΠΎΡ€ΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΡƒΡŽ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ чисСл.
    • Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ поэлСмСнтного слоТСния (t+), вычитания (t-), умноТСния (t*) ΠΈ дСлСния (td) Ρ‚Π΅Π½Π·ΠΎΡ€ΠΎΠ². НапримСр, (t+ [[1 2] [3 4]] [[5 6] [7 8]]) Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π½ΠΎ [[6 8] [10 12]].
  • Broadcast (38, 39)
    • НазовСм Ρ‚Π΅Π½Π·ΠΎΡ€ΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΡƒΡŽ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ чисСл.
    • Π€ΠΎΡ€ΠΌΠ° Ρ‚Π΅Π½Π·ΠΎΡ€Π° – ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ чисСл (s1..n)=(s1, s2, …, sn), Π³Π΄Π΅ n – Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ Ρ‚Π΅Π½Π·ΠΎΡ€Π°, Π° si – число элСмСнтов ΠΏΠΎ i-ΠΎΠΉ оси. НапримСр, Ρ„ΠΎΡ€ΠΌΠ° Ρ‚Π΅Π½Π·ΠΎΡ€Π° [[[2 3 4] [5 6 7]]] Β Ρ€Π°Π²Π½Π° (1, 2, 3), Π° Ρ„ΠΎΡ€ΠΌΠ° 1 Ρ€Π°Π²Π½Π° ().
    • Π’Π΅Π½Π·ΠΎΡ€ Ρ„ΠΎΡ€ΠΌΡ‹ (s1..n) ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ распространСн (broadcast) Π΄ΠΎ Ρ‚Π΅Π½Π·ΠΎΡ€Π° Ρ„ΠΎΡ€ΠΌΡ‹ (u1..m), Ссли (si..n) являСтся прСфиксом (u1..m). Для этого, элСмСнты Ρ‚Π΅Π½Π·ΠΎΡ€Π° ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΏΠΎ Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΠΌ осям. НапримСр, распространив Ρ‚Π΅Π½Π·ΠΎΡ€ [[1 2]] Ρ„ΠΎΡ€ΠΌΡ‹ (1, 2) Π΄ΠΎ Ρ„ΠΎΡ€ΠΌΡ‹ (1, 2, 3) ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ [[[1 1 1] [2 2 2]]], Π° распространив 1 Π΄ΠΎ Ρ„ΠΎΡ€ΠΌΡ‹ (2, 3) ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ [[1 1 1] [1 1 1]].
    • Π’Π΅Π½Π·ΠΎΡ€Ρ‹ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ совмСстимыми, Ссли ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ… ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ распространСн Π΄ΠΎ Ρ„ΠΎΡ€ΠΌΡ‹ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ. НапримСр, Ρ‚Π΅Π½Π·ΠΎΡ€Ρ‹ Ρ„ΠΎΡ€ΠΌΡ‹ (1, 2, 3) ΠΈ (1, 2) совмСстимы, Π° (1, 2, 3) ΠΈ (2, 1) – Π½Π΅Ρ‚. Числа совмСстимы с Ρ‚Π΅Π½Π·ΠΎΡ€Π°ΠΌΠΈ любой Ρ„ΠΎΡ€ΠΌΡ‹.
    • Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ поэлСмСнтного слоТСния (tb+), вычитания (tb-), умноТСния (tb*) ΠΈ дСлСния (tbd) совмСстимых Ρ‚Π΅Π½Π·ΠΎΡ€ΠΎΠ². Если Ρ„ΠΎΡ€ΠΌΡ‹ Ρ‚Π΅Π½Π·ΠΎΡ€ΠΎΠ² Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚, Ρ‚ΠΎ Ρ‚Π΅Π½Π·ΠΎΡ€Ρ‹ мСньшСй размСрности Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ распространСны Π΄ΠΎ Ρ‚Π΅Π½Π·ΠΎΡ€ΠΎΠ² большСй размСрности. НапримСр, (tb+ 1 [[10 20 30] [40 50 60]] [100 200]) Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π½ΠΎ [[111 121 131] [241 251 261]].
    • Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ тСстов

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΊ лСкциям ΠΏΠΎ Clojure

ДокумСнтация

Запуск Clojure

  • Консоль: Windows, *nix
    • Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ: RunClojure
    • Π‘ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ: RunClojure --eval "<Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅>"
    • Π‘ΠΊΡ€ΠΈΠΏΡ‚: RunClojure <Ρ„Π°ΠΉΠ» скрипта>
    • Π‘ΠΏΡ€Π°Π²ΠΊΠ°: RunClojure --help
  • IDE

Π‘ΠΊΡ€ΠΈΠΏΡ‚ со всСми ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ

ЛСкция 1. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ

ЛСкция 2. Π’Π½Π΅ΡˆΠ½ΠΈΠΉ ΠΌΠΈΡ€

ЛСкция 3. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹

ЛСкция 4. ΠšΠΎΠΌΠ±ΠΈΠ½Π°Ρ‚ΠΎΡ€Π½Ρ‹Π΅ парсСры

ЛСкция 5. ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ ΠΈ основания ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ

ВСстовоС Π·Π°Π΄Π°Π½ΠΈΠ΅ Π½Π° Clojure

Π­Ρ‚ΠΎ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄Π½ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΎ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ настройки Clojure. Π’Π°ΠΌ Π½Π°Π΄ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ провСряСтся Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅.

Для запуска тСстов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ скрипты TestClojure.cmd ΠΈ TestClojure.sh

  • Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ скачан Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ.
  • Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ clojure (ΠΈΡ… нСльзя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²).
  • ВСстируСмоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅.
  • Π’ качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки указываСтся ΠΏΠΎΠ»Π½ΠΎΠ΅ имя класса тСста, ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈ модификация, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, cljtest.example.ExampleTest hard base.

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ

Π”ΠΎΠΌΠ°ΡˆΠ½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ 8. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок Π½Π° JavaScript

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ

  • Base
    • Код Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Ρ„Π°ΠΉΠ»Π΅ javascript-solutions/objectExpression.js.
  • SumAvg (32-35). Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ:
    • ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ числа Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²:
      • sum – сумма, (sum 1 2 3) Ρ€Π°Π²Π½ΠΎ 6;
      • avg – срСднСС, (avg 1 2 3) Ρ€Π°Π²Π½ΠΎ 2;
  • Postfix (36-39). Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ:
    • Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² постфиксной записи:
      • (2 3 +) Ρ€Π°Π²Π½ΠΎ 5
      • функция parsePostfix
      • ΠΌΠ΅Ρ‚ΠΎΠ΄ postfix
    • Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ тСстов
      • Π—Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ c ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ слоТности (easy ΠΈΠ»ΠΈ hard).
  • SumexpLSE (36, 37). Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ:
    • ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ числа Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²:
      • Sumexp (sumexp) – сумма экспонСнт, (2 3 16 sumexp) ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π²Π½ΠΎ 8886137;
      • LSE (lse) – LogSumExp, (2 3 16 lse) ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π²Π½ΠΎ 16;
  • MeansqRMS (38, 39). Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ:
    • ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ числа Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²:
      • Meansq (meansq) – срСднСС ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠ², (2 10 22 meansq) Ρ€Π°Π²Π½ΠΎ 196;
      • RMS (rms) – Root mean square, (2 10 22 rms) Ρ€Π°Π²Π½ΠΎ 14;

Π”ΠΎΠΌΠ°ΡˆΠ½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ 7. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Π΅ выраТСния Π½Π° JavaScript

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ

  • Base
    • Код Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Ρ„Π°ΠΉΠ»Π΅ javascript-solutions/objectExpression.js.
  • ExpLn (32, 34). Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ:
    • ΡƒΠ½Π°Ρ€Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:
      • Exp (exp) – экспонСнта, 8 exp ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π²Π½ΠΎ 2981;
      • Ln (Ln) – Π½Π°Ρ‚ΡƒΡ€Π°Π»ΡŒΠ½Ρ‹ΠΉ Π»ΠΎΠ³Π°Ρ€ΠΈΡ„ΠΌ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠΉ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹, 2981 ln ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π²Π½ΠΎ 8.
  • ArcTan (33, 35). Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ:
    • Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:
      • ArcTan (atan) – арктангСнс, 1256 atan ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π²Π½ΠΎ 1.57;
      • ArcTan2 (atan2) – арктангСнс, 841 540 atan2 ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π²Π½ΠΎ 1.
  • Distance (36, 37). Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ:
    • Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΎΡ‚ N Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² для N=2..5:
      • SumSqN (sumsqN) – сумма ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠ², 3 4 sumsq2 Ρ€Π°Π²Π½ΠΎ 25;
      • DistanceN (distanceN) – Π΄Π»ΠΈΠ½Π° Π²Π΅ΠΊΡ‚ΠΎΡ€Π°, 3 4 distance2 Ρ€Π°Π²Π½ΠΎ 5.
  • SumrecHMean (38, 39). Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ:
    • Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΎΡ‚ N Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² для N=2..5:
      • SumrecN (sumrecN) – сумма ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Ρ… Π²Π΅Π»ΠΈΡ‡ΠΈΠ½, 1 2 3 6 sumrec4 Ρ€Π°Π²Π½ΠΎ 2;
      • HMeanN (hmeanN) – срСднСС гармоничСскоС, 2 3 6 hmean3 Ρ€Π°Π²Π½ΠΎ 3.

Π”ΠΎΠΌΠ°ΡˆΠ½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ 6. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ выраТСния Π½Π° JavaScript

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ

  • Базовая
    • Код Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Ρ„Π°ΠΉΠ»Π΅ javascript-solutions/functionalExpression.js.
  • OneTwo (32-39). Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ:
    • констант:
      • one – 1;
      • two – 2;
  • SinCos (32, 34). Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ:
    • ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ:
      • sin – синус, 3.14159265 sin ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π²Π½ΠΎ 0;
      • cos – косинус, 3.14159265 cos ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π²Π½ΠΎ -1.
  • SinhCosh (33, 35). Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ:
    • ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ:
      • sinh – гипСрболичСский синус, (sinh 3) Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ большС 10;
      • cosh – гипСрболичСский косинус, (cosh 3) Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ мСньшС 10.
  • FP (36, 37). Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ:
    • ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ:
      • *+ (madd) – Ρ‚Π΅Ρ€Π½Π°Ρ€Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅-сумма, 2 3 4 *+ Ρ€Π°Π²Π½ΠΎ 10;
      • _ (floor) – ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ Π²Π½ΠΈΠ· 2.7 _ Ρ€Π°Π²Π½ΠΎ 2;
      • ^ (ceil) – ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ Π²Π²Π΅Ρ€Ρ… 2.7 ^ Ρ€Π°Π²Π½ΠΎ 3.
  • ArgMinMax (38, 39). Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ:
    • ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ:
      • argMin3 – индСкс минимального ΠΈΠ· Ρ‚Ρ€Ρ‘Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², 3 4 1 argMin3 Ρ€Π°Π²Π½ΠΎ 2;
      • argMax3 – индСкс максимального ΠΈΠ· Ρ‚Ρ€Ρ‘Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², 3 4 1 argMin3 Ρ€Π°Π²Π½ΠΎ 1;
      • argMin5 – индСкс минимального ΠΈΠ· пяти Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², 3 4 1 5 6 argMin3 Ρ€Π°Π²Π½ΠΎ 2;
      • argMax5 – индСкс максимального ΠΈΠ· пяти Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², 3 4 10 5 6 argMax3 Ρ€Π°Π²Π½ΠΎ 2;

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΊ лСкциям ΠΏΠΎ JavaScript

Π‘ΠΊΡ€ΠΈΠΏΡ‚ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ

Запуск ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ²

ЛСкция 1. Π’ΠΈΠΏΡ‹ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

ЛСкция 2. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ замыкания

ЛСкция 3. Π”Ρ€ΡƒΠ³ΠΈΠ΅ возмоТности

ВСстовоС Π·Π°Π΄Π°Π½ΠΈΠ΅ Π½Π° JavaScript

Π­Ρ‚ΠΎ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄Π½ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΎ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ настройки JavaScript. Π’Π°ΠΌ Π½Π°Π΄ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ провСряСтся Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅.

Запуск тСстов

  • Для запуска тСстов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ GraalJS (Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° GraalVM, Π²Π°ΠΌ Π½Π΅ трСбуСтся ΠΈΡ… ΡΠΊΠ°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ)
  • Для запуска тСстов ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ скрипты TestJS.cmd ΠΈ TestJS.sh
    • Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ скачан Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ.
    • Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ javascript (ΠΈΡ… нСльзя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²).
    • Π’ качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки указываСтся ΠΏΠΎΠ»Π½ΠΎΠ΅ имя класса тСста ΠΈ модификация, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ jstest.example.ExampleTest hard base.
  • Для ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ запуска ΠΈΠ· консоли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку Π²ΠΈΠ΄Π°: java -ea --module-path=<js>/graal --class-path <js> jstest.functional.FunctionalTest {hard|easy} <variant>, Π³Π΄Π΅
    • -ea – Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ исполнСния;
    • --module-path=<js>/graal ΠΏΡƒΡ‚ΡŒ ΠΊ модулям Graal (здСсь ΠΈ Π΄Π°Π»Π΅Π΅ <js> ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ javascript этого рСпозитория);
    • --class-path <js> ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΎΡ‚ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ тСстам;
    • {hard|easy} ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ тСстируСмой слоТности;
    • <variant>} ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ тСстируСмой ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ.
  • ΠŸΡ€ΠΈ запускС ΠΈΠ· IDE, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ трСбуСтся ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ --class-path, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ формируСтся автоматичСски. ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΡ†ΠΈΠΈ всС Ρ€Π°Π²Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ.
  • Troubleshooting
    • Error occurred during initialization of boot layer java.lang.module.FindException: Module org.graalvm.truffle not found, required by jdk.internal.vm.compiler – Π½Π΅Π²Π΅Ρ€Π½ΠΎ ΡƒΠΊΠ°Π·Π°Π½ --module-path;
    • Graal.js not found – Π½Π΅Π²Π΅Ρ€Π½ΠΎ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ --module-path
    • Error: Could not find or load main class jstest.example.ExampleTest – Π½Π΅Π²Π΅Ρ€Π½ΠΎ ΡƒΠΊΠ°Π·Π°Π½ --class-path;
    • Exception in thread "main" java.lang.AssertionError: You should enable assertions by running 'java -ea jstest.functional.FunctionalExpressionTest' – Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½Π° опция -ea;
    • Exception in thread "main" jstest.EngineException: Script 'example.js' not found – Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ отсутствуСт Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ (example.js)

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ

Π”ΠΎΠΌΠ°ΡˆΠ½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ 5. ВычислСниС Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ°Ρ…

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ

  • Base
    • Класс GenericTabulator Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ интСрфСйс Tabulator ΠΈ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ‚Ρ€Π΅Ρ…ΠΌΠ΅Ρ€Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ выраТСния.
      • mode – Ρ€Π΅ΠΆΠΈΠΌ вычислСний:
        • i – вычислСния Π² int с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅;
        • d – вычислСния Π² double Π±Π΅Π· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅;
        • bi – вычислСния Π² BigInteger.
      • expression – Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π°Π΄ΠΎ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ;
      • x1, x2 – минимальноС ΠΈ максимальноС значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ x (Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ)
      • y1, y2, z1, z2 – Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ для y ΠΈ z.
      • Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: элСмСнт result[i][j][k] Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ выраТСния для x = x1 + i, y = y1 + j, z = z1 + k. Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ пСрСполнСния), Ρ‚ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π΅Π½ null.
    • Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ тСстов
      • ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚: easy ΠΈΠ»ΠΈ hard
      • ΠŸΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹: ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ
  • Ufs (32-35)
    • Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ€Π΅ΠΆΠΈΠΌΠΎΠ²:
      • u – вычислСния Π² int Π±Π΅Π· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅;
      • f – вычислСния Π² float Π±Π΅Π· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅;
      • s – вычислСния Π² short Π±Π΅Π· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.
  • Asm (36-39)
    • Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ ΡƒΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ:
      • abs – ΠΌΠΎΠ΄ΡƒΠ»ΡŒ числа, abs -5 Ρ€Π°Π²Π½ΠΎ 5;
      • square – Π²ΠΎΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚, square 5 Ρ€Π°Π²Π½ΠΎ 25.
    • Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ Π±ΠΈΠ½Π°Ρ€Π½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ (ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚):
      • mod – взятиС ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ, ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΠΊΠ°ΠΊ Ρƒ умноТСния (1 + 5 mod 3 Ρ€Π°Π²Π½ΠΎ 1 + (5 mod 3) Ρ€Π°Π²Π½ΠΎ 3).
  • Uls (36, 37)
    • Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ€Π΅ΠΆΠΈΠΌΠΎΠ²:
      • u – вычислСния Π² int Π±Π΅Π· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅;
      • l – вычислСния Π² long Π±Π΅Π· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅;
      • s – вычислСния Π² short Π±Π΅Π· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.
  • Ups (38, 39)
    • Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ€Π΅ΠΆΠΈΠΌΠΎΠ²:
      • u – вычислСния Π² int Π±Π΅Π· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅;
      • p – вычислСния Π² Ρ†Π΅Π»Ρ‹Ρ… числах ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ 10079;
      • s – вычислСния Π² short Π±Π΅Π· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.

Π”ΠΎΠΌΠ°ΡˆΠ½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ 4. ΠžΡ‡Π΅Ρ€Π΅Π΄ΠΈ

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ

  • Count (32, 34)
    • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ count, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΉ число Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ элСмСнта Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ.
  • Index (33, 35)
    • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄
      • indexOf, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΉ индСкс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ вхоТдСния элСмСнта Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ;
      • lastIndexOf, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΉ индСкс послСднСго вхоТдСния элСмСнта Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ.
    • Π˜Π½Π΄Π΅ΠΊΡΡ‹ ΠΎΡ‚ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ с Π³ΠΎΠ»ΠΎΠ²Ρ‹ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ.
    • Если искомого элСмСнта Π½Π΅Ρ‚, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ -1.
  • Contains (36, 37)
    • Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² интСрфСйс ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹
      • contains(element) – провСряСт, содСрТится Π»ΠΈ элСмСнт Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ
      • removeFirstOccurrence(element) – удаляСт ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ элСмСнта Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π±Ρ‹Π»ΠΎ Π»ΠΈ Ρ‚Π°ΠΊΠΎΠ΅
    • Дублирования ΠΊΠΎΠ΄Π° Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ
  • Nth (38, 39)
    • Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² интСрфСйс ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹
      • getNth(n) – ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ n-ΠΉ элСмСнт, считая с 1
      • removeNth(n) – ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ n-ΠΉ элСмСнт, ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΡ… ΠΈΠ· исходной ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ
      • dropNth(n) – ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ n-ΠΉ элСмСнт ΠΈΠ· исходной ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ
    • Π’ΠΈΠΏ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠΉ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏΡƒ исходной ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ
    • Дублирования ΠΊΠΎΠ΄Π° Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ

Π”ΠΎΠΌΠ°ΡˆΠ½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ 3. ΠžΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π½Π° массивС

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ

  • Базовая
    • ΠšΠ»Π°ΡΡΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ queue
  • ToStr (32, 34)
    • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ toStr, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΉ строковоС прСдставлСниС ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Π² Π²ΠΈΠ΄Π΅ '[' Π³ΠΎΠ»ΠΎΠ²Π° ', ' ... ', ' хвост ']'
  • ToArray (33, 35)
    • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ toArray, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΉ массив, содСрТащий элСмСнты, Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Π² порядкС ΠΎΡ‚ Π³ΠΎΠ»ΠΎΠ²Ρ‹ ΠΊ хвосту.
  • Deque
    • Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹
      • push – Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ элСмСнт Π² Π½Π°Ρ‡Π°Π»ΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ;
      • peek – Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ послСдний элСмСнт Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ;
      • remove – Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ послСдний элСмСнт ΠΈΠ· ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ.
  • DequeToArray (36, 37)
    • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Deque;
    • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ toArray, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΉ массив, содСрТащий элСмСнты, Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Π² порядкС ΠΎΡ‚ Π³ΠΎΠ»ΠΎΠ²Ρ‹ ΠΊ хвосту.
  • DequeIndexed (38, 39)
    • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Deque
    • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹
      • get – ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ элСмСнт ΠΏΠΎ индСксу, отсчитываСмому с Π³ΠΎΠ»ΠΎΠ²Ρ‹;
      • set – Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ элСмСнт ΠΏΠΎ индСксу, отсчитываСмому с Π³ΠΎΠ»ΠΎΠ²Ρ‹.
    • Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ тСстов Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ JVM --add-opens java.base/java.util=ALL-UNNAMED

Π”ΠΎΠΌΠ°ΡˆΠ½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ 2. Π‘ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ поиск

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ

  • Базовая
    • Класс BinarySearch Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ search
  • Oddity (32 - 37)
    • Если сумма всСх чисСл Π²ΠΎ Π²Ρ…ΠΎΠ΄Π΅ чётная, Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ рСкурсивная вСрсия, ΠΈΠ½Π°Ρ‡Π΅ β€” итСративная.
  • Shift (32, 34)
    • На Π²Ρ…ΠΎΠ΄ подаСтся отсортированный (строго) ΠΏΠΎ ΡƒΠ±Ρ‹Π²Π°Π½ΠΈΡŽ массив, цикличСски сдвинутый Π½Π° k элСмСнтов. ВрСбуСтся Π½Π°ΠΉΡ‚ΠΈ k. ВсС числа Π² массивС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹.
    • Класс Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ имя BinarySearchShift
  • Max (33, 35)
    • На Π²Ρ…ΠΎΠ΄ подаСтся цикличСский сдвиг отсортированного (строго) ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ массива. ВрСбуСтся Π½Π°ΠΉΡ‚ΠΈ Π² Π½Ρ‘ΠΌ максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.
    • Класс Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ имя BinarySearchMax
  • Uni (36, 37)
    • На Π²Ρ…ΠΎΠ΄ подаСтся массив ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ приписываниСм Π² ΠΊΠΎΠ½Π΅Ρ† массива отсортированного (строго) ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ, массива отсортированного (строго) ΠΏΠΎ ΡƒΠ±Ρ‹Π²Π°Π½ΠΈΡŽ. ВрСбуСтся Π½Π°ΠΉΡ‚ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ массива.
    • Класс Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ имя BinarySearchUni
  • Span (38, 39)
    • На Π²Ρ…ΠΎΠ΄ подаётся число x ΠΈ массив, отсортированный ΠΏΠΎ Π½Π΅ΡƒΠ±Ρ‹Π²Π°Π½ΠΈΡŽ. ВрСбуСтся вывСсти Π΄Π²Π° числа: Π½Π°Ρ‡Π°Π»ΠΎ ΠΈ Π΄Π»ΠΈΠ½Ρƒ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° элСмСнтов, Ρ€Π°Π²Π½Ρ‹Ρ… x. Если Ρ‚Π°ΠΊΠΈΡ… элСмСнтов Π½Π΅Ρ‚, Ρ‚ΠΎ слСдуСт вывСсти пустой Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ лСвая Π³Ρ€Π°Π½ΠΈΡ†Π° совпадаСт с мСстом вставки элСмСнта x.
    • НС допускаСтся использованиС Ρ‚ΠΈΠΏΠΎΠ² long ΠΈ BigInteger.
    • Класс Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ имя BinarySearchSpan

Π”ΠΎΠΌΠ°ΡˆΠ½Π΅Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ 1. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ

  • Base
    • Класс ExpressionParser Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ интСрфСйс TripleParser
    • ΠšΠ»Π°ΡΡΡ‹ CheckedAdd, CheckedSubtract, CheckedMultiply, CheckedDivide ΠΈ CheckedNegate Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ интСрфСйс TripleExpression
    • НСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏΡ‹ long ΠΈ double
    • НСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ классов Math ΠΈ StrictMath
  • SetClear (32-37)
    • Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚):
      • set – установка Π±ΠΈΡ‚Π°, 2 set 3 Ρ€Π°Π²Π½ΠΎ 10;
      • clear – сброс Π±ΠΈΡ‚Π°, 10 clear 3 Ρ€Π°Π²Π½ΠΎ 2.
  • Count (32-37)
    • Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ ΡƒΠ½Π°Ρ€Π½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ count – число установлСнных Π±ΠΈΡ‚ΠΎΠ², count -5 Ρ€Π°Π²Π½ΠΎ 31.
  • GcdLcm (38, 39)
    • Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚):
      • gcd – ΠΠžΠ”, 2 gcd -3 Ρ€Π°Π²Π½ΠΎ 1;
      • lcm – НОК, 2 lcm -3 Ρ€Π°Π²Π½ΠΎ -6.
  • Reverse (38, 39)
    • Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ ΡƒΠ½Π°Ρ€Π½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ reverse – число с пСрСставлСнными Ρ†ΠΈΡ„Ρ€Π°ΠΌΠΈ, reverse -12345 Ρ€Π°Π²Π½ΠΎ -54321.
  • PowLog10 (36-39)
    • Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ ΡƒΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ:
      • log10 – Π»ΠΎΠ³Π°Ρ€ΠΈΡ„ΠΌ ΠΏΠΎ ΡƒΡΠ½ΠΎΠ²Π°Π½ΠΈΡŽ 10, log10 1000 Ρ€Π°Π²Π½ΠΎ 3;
      • pow10 – 10 Π² стСпСни, pow10 4 Ρ€Π°Π²Π½ΠΎ 10000.