Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
APL время пришло. ⇐ ПредыдущаяСтр 8 из 8
Пусть функция PVALUE, показанная ниже, вычисляет кол-во денег, которое вы должны положить в банк для того, чтобы получить некоторую сумму денег за опред пер времени при заданной годовой процентной ставке дохода: ⎕ vr 'PVALUE' ∇ Z← AMT PVALUE NI; RATE [1] RATE← NI[2]× 0.01 [2] Z← AMT÷ 1+NI[1]× RATE 1.Считаем наши инвестиции, где AMP-сколько мы хотим получить, Z-размер суммы вложения. 2. Преобразование в процентов в дробь, где NI[2]-процентная ставка. 3. Получение размеров вклада, NI[1]-годы.
Лекция от 2015.11.27 Вероятность выпадения 7 гербов из 10 бросков кто не знает простую формулу сочетания и что означают буквы, мне Вас жаль( 7! 10 (7! 10)× (.5*7)× (1-.5)*3 это тоже самое что это и не делайте умные выражения лица 0.1171875 )ed bern данная функция выглядит так [0] q← p bern mn [1] mn[1]! mn[2] или! /mn ↑ по-простому ↑ по-умному [2]q← (! /mn)× (p*(↑ mn))× (1-p)*|-/mn в конце функции всегда надо присваивать ответ, в данном случаи это q .5 bern 7 10 вероятность 0.5 благоприятных 7 всего 10 0.1171875 2×.5 bern 7 10 0.1171875 VALUE ERROR: No result was provided when the context expec ted one Тут АПЛ немножко закапризничал и попросил написать .5 как 0.5 2× 0.5 bern 7 10 ∧ 2× 0.5 bern 7 10 вот мы молодцы все исправили и получаем ответ 0.234375 0.5 bern 7 10 0.1171875 переходим к более серьезному ) ed IamSorry новая функция [0] z ← p IamSorry n; i i ← переменный индекс [1] i ← 0 [2] z ← ⍳ 0 [3] z ← z, i, p bern i, n [4] i ← i+1 [5] → (i≤ n)/3
z←.5 IamSorry 10 ⍴ z размерность этой функции, т.к. i, p z- получаем результат, где вероятности выпадения герба от 1 до 10 0 0.0009765625 1 0.009765625 2 0.0439453125 3 0.1171875 4 0.205078125 5 0.24609375 6 0.205078125 7 0.1171875 8 0.0439453125 9 0.009765625 10 0.0009765625 11 2⍴ z К Р А С И В О составляем матрицу размера [11; 2] 0 0.0009765625 1 0.009765625 2 0.0439453125 3 0.1171875 4 0.205078125 5 0.24609375 6 0.205078125 7 0.1171875 8 0.0439453125 9 0.009765625 10 0.0009765625 .5 IamSorry 10 теперь в эту функцию добавляем [6] z← ((n+1), 2)⍴ z 0 0.0009765625 1 0.009765625 2 0.0439453125 3 0.1171875 4 0.205078125 5 0.24609375 6 0.205078125 7 0.1171875 8 0.0439453125 9 0.009765625 10 0.0009765625 .5 IamSorry1 10 функция состоит [0] z ← p Iamsorry1 n; i [1] z← ⍳ i← 0 [2] REPEAT: z← z, i, p bern i; n [3] i← i+1 [4] → (i≤ n)/ REPEAT REPEAT- это метка, за место этого слова может стоять что угода, например CHEPET [5] z← ((n+1), 2)⍴ z
0 0.0009765625 0 0.0009765625 0 0.0009765625 0 0.0009765625 0 0.0009765625 0 0.0009765625 0 0.0009765625 0 0.0009765625 0 0.0009765625 0 0.0009765625 0 0.0009765625 .5 IamSorry1 10 REPEAT 0 0.0009765625 1 0.009765625 2 0.0439453125 3 0.1171875 4 0.205078125 5 0.24609375 6 0.205078125 7 0.1171875 8 0.0439453125 9 0.009765625 10 0.0009765625 .5 IamSorry1 10 .5 IamSorry2 10 [0] z ← p Iamsorry1 n; i [1] z← ⍳ i← 0 [2] REP: z← z, i, p bern i; n [3] → (n≥ i← i+1)/REP
REPEAT 0 0.0009765625 1 0.009765625 2 0.0439453125 3 0.1171875 4 0.205078125 5 0.24609375 6 0.205078125 7 0.1171875 8 0.0439453125 9 0.009765625 10 0.0009765625 REPEAT VALUE ERROR REPEAT ∧ .5 IamSorry3 10 0 0.0009765625 1 0.009765625 2 0.0439453125 3 0.1171875 4 0.205078125 5 0.24609375 6 0.205078125 7 0.1171875 8 0. 0439453125 9 0.009765625 10 0.0009765625 ⊃.5 IamSorry3 10 [0] z← p IamSorry3 n; i [1]z← ⍳ o [2]: For i: In 0, ⍳ n [3] z← z, ⊂ i, p bern i; n [4]: EndFor 0 0.0009765625 1 0.009765625 2 0.0439453125 3 0.1171875 4 0.205078125 5 0.24609375 6 0.205078125 7 0.1171875 8 0.0439453125 9 0.009765625 10 0.0009765625
.5 bern (7 10)(3 10) 0 0.0078125 0 0.0009765625 .5 bern¨ (7 10)(3 10) 0.1171875 0.1171875.5 bern¨ (0, ⍳ 10), ¨ 10 0.0009765625 0.009765625 0.0439453125 0.1171875 0.205078125 0.24609375 0.205078125 0.1171875 0.0439453125 0.009765625 0.0009765625 ⊃.5 bern¨ (0, ⍳ 10), ¨ 10 0.0009765625 0.009765625 0.0439453125 0.1171875 0.205078125 0.24609375 0.205078125 0.1171875 0.0439453125 0.009765625 0.0009765625 .5 bern¨ (0, ⍳ 10), ¨ 10 0.0009765625 0.009765625 0.0439453125 0.1171875 0.205078125 0.24609375 0.205078125 0.1171875 0.0439453125 0.009765625 0.0009765625 )fns IamSorry IamSorry1 IamSorry2 IamSorry3 ave bern sigm вместо этой функции можно записать так.5 bern ¨ (o, ⍳ 10), ¨ 10 q←.3.5.7 bern¨ ¨ ⊂ (o, ⍳ 10), ¨ 10
.3.5.7 bern¨ (0, ⍳ 10), ¨ 10 LENGTH ERROR он тут опять капризничает, также добавляем 0 перед точкой 0.3 0.5 0.7 bern¨ (0, ⍳ 10), ¨ 10 ∧ q←.3.5.7 bern¨ ⊂ (0, ⍳ 10), ¨ 10 DOMAIN ERROR bern[1] q← (! /mn)× (p*(↑ mn))× (1-p)*|-/mn ∧ mn 0 10 1 10 2 10 3 10 4 10 5 10 6 10 7 10 8 10 9 10 10 10 )reset q←.3.5.7 bern¨ ¨ ⊂ (0, ⍳ 10), ¨ 10 q←.3.5.7 bern¨ ⊂ (0, ⍳ 10), ¨ 10 DOMAIN ERROR bern[1] q← (! /mn)× (p*(↑ mn))× (1-p)*|-/mn ∧ p 0.3 mn 0 10 1 10 2 10 3 10 4 10 5 10 6 10 7 10 8 10 9 10 10 10 )reset q←.3.5.7 bern¨ ¨ ⊂ (0, ⍳ 10), ¨ 10 ⍴ q ⍴ ¨ q 11 11 11 xxx← (0, ⍳ 10), ⍉ ⊃ q ]load plt #.plt 2 plt.plot xxx +/¨ q сумма вероятностей 1 1 1 )ed gauss [0] f ← ms gauss x; m; s [1] (m s) ← ms [2]f← *-× ((x-m)*2) ÷ 2× s*2 [3]f← f÷ s× (02)*.5 (a b c)← ⍳ 3 a b c 0 1 gauss 0 0.3989422804 ÷ (○ 2)*.5 0.3989422804 0 1 gauss ¯ 1 0.2419707245 0 1 gauss 1 0.2419707245 0 1 gauss ¯ 3 ¯ 2 ¯ 1 0 1 2 3 0.004431848412 0.05399096651 0.2419707245 0.3989422804 0.2419707245 0.05399096651 0.004431848412 0 1 gauss ¯ 3 ¯ 2 ¯ 1 0 1 2 3 2 plt.plot 0 1 gauss ¯ 3 ¯ 2 ¯ 1 0 1 2 3 x←.1× ⍳ 40 x← (-⌽ x), 0, x 2 plt.plot 0 1 gauss x )fns IamSorry IamSorry1 IamSorry2 IamSorry3 IamSorry4 ave bern gauss sigm ⎕ vr'ave' ∇ y← ave data [1] y← +/data÷ ⍴ data ∇ ⎕ vr'sigm' ∇ y← sigm x [1] y← +/(x-ave x)*2 [2] y← y÷ ⍴ x ∇ ⎕ vr'bern' ∇ q← p bern mn [1] q← (! /mn)× (p*(↑ mn))× (1-p)*|-/mn ∇ ⎕ vr'IamSorry' ∇ z← p IamSorry n; i [1] i← 0 [2] z← ⍳ 0 [3] z← z, i, p bern i, n [4] i← i+1 [5] → (i≤ n)/3 [6] z← ((n+1), 2)⍴ z ∇ ⎕ vr'IamSorry1' ∇ z← p IamSorry1 n; i [1] ⍝ this is the [2] ⍝ great function [3] z← ⍳ i← 0 [4] REPEAT: z← z, i, p bern i, n [5] i← i+1 [6] → (i≤ n)/REPEAT [7] z← ((n+1), 2)⍴ z ∇ ⎕ vr'IamSorry2' ∇ z← p IamSorry2 n; i [1] z← ⍳ i← 0 [2] REPEAT: z← z, i, p bern i, n [3] i← i+1 [4] → (i≤ n)/REPEAT [5] z← ((n+1), 2)⍴ z ∇ ⎕ vr'IamSorry3' ∇ z← p IamSorry3 n; i [1] z← ⍳ i← 0 [2] REP: z← z, ⊂ i, p bern i, n [3] i← i+1 [4] → (i≤ n)/REP ∇ ⎕ vr'IamSorry4' ∇ z← p IamSorry4 n; i [1] z← ⍳ 0 [2]: For i: In 0, ⍳ n [3] z← z, ⊂ i, p bern i, n [4]: EndFor Лекция от 2015.12.04
1. Workspace
6 25 14 32 5 18
2. APL Language references
Равно R← X=Y Y может быть любым массивом. X может быть любым массивом. R логическое число. ⎕ CT это неявный аргумент Равно. Если X и Y переменные, тогда R это 1, если они одинаковые переменные. Если X это переменная и Y это число, или наоборот, тогда R это 0. Если X и Y числа, тогда R это 1, если X и Y в пределах сравнения друг друга. Для действительных чисел X и Y, X считается равным Y если (|X-Y) не больше чем ⎕ CT× (|X)⌈ |Y. Для комплексных чисел X=Y это 1 если величина X-Y не превышает в ⎕ CT раз большей величины X и Y; геометрически, X=Y если число меньшее, чем величина лежащая на или вне окружности по центру на окружности с большей величиной, имеющей радиус в ⎕ CT раз большей величины. Примеры 3=3.1 3 ¯ 2 ¯ 3 0 1 0 0 a← 2+0j1× ⎕ CT a 2J1E¯ 14 a=2j.00000000000001 2j.0000000000001 1 0 'CAT'='FAT' 0 1 1 'CAT'=1 2 3 0 0 0 'CAT'='C' 2 3 1 0 0 ⎕ CT← 1E¯ 10 1=1.000000000001 1=1.0000001
Больше R← X> Y Y должен быть числом. X должен быть числом. R логическое число. R это 1 если X больше чем Y, и X=Y это 0. В противном случае R это 0. ⎕ CT это неявный аргумент Больше. Примеры 1 2 3 4 5 > 2 0 0 1 1 1 ⎕ CT← 1E¯ 10 1 1.00000000001 1.000000001 > 1 0 0 1
Меньше R← X< Y Y может быть числовым массивом. X может быть числовым массивом. R логическое число. R это 1, если X меньше чем Y, и X=Y это 0. В противном случае R это 0. ⎕ это неявный аргумент Меньше. Примеры (2 4) (6 8 10) < 6 1 1 0 0 0 ⎕ CT← 1E¯ 10 1 0.99999999999 0.9999999999< 1 0 0 1
Повторение R← X/[K]Y Y может быть любым массивом. X простой целый вектор или скаляр. Определение оси является необязательным. Если дано, K должно быть простым целым скаляром или одноэлементным вектором. Величина K должно быть осью Y. Если отсутствует, последней осью подразумевается Y. Форма R← X⌿ Y означает первую ось Y. Если Y имеет длину 1 вдоль Kой (или подразумеваемой) оси, он проходит вдоль оси, чтобы соответствовать длине X. В противном случае, длина X должна быть длиной Kой (или подразумеваемой) оси Y. Однако, если X это скаляр или одноэлементный вектор, он будет продлен до длины Kой оси. R состоит из суб-массивов вдоль Kой оси Y. Если X[I] (элемент X) положительный, тогда соответствующий суб-массив повторяется X[I] раз. Если X[I] это 0, тогда соответствующий суб-массив Y исключается. Если X[I] отрицательный, тогда содержимое элемента Y повторяется |X[I] раз. Каждый из (повторенных) суб-массивов и заполняется пунктами вдоль Kой оси в порядке расположения. Форма R это форма Y за исключением того, что длина (подразумеваемой) Kой оси это +/|X (после возможного расширения). Эта функция иногда называется Сжатие, когда X логический. Примеры 1 0 1 0 1/⍳ 5 1 3 5 1 ¯ 2 3 ¯ 4 5/⍳ 5 1 0 0 3 3 3 0 0 0 0 5 5 5 5 5 M 1 2 3 4 5 6 2 0 1/M 1 1 3 4 4 6 0 1⌿ M 4 5 6 0 1/[1]M 4 5 6 Если Y не имеет пары (1=× /⍴, Y) его величина условно продлевается до длины X Вдоль указанной оси. 1 0 1/4 4 4 1 0 1/, 3 3 3 0 1/1 1⍴ 5
Вычитание R← X-Y
Произведение R← X× Y Y может быть любой числовой массив. Х может быть любой числовой массив. R арифметическое Продукт X и Y. Эта функция также известна как умножение. Пример: 3 2 1 0 × 2 4 9 6 6 8 9 0 2j3×.3j.5 1j2 3j4.5 ¯ 0.9J1.9 ¯ 4J7 ¯ 6J17 1J1.5
Индекс вхождения R← X⍳ Y Y может быть любым массивом. Х любой массив 1 ранга или более. Вектор левого аргумента Если X является вектором, результат R представляет собой простой целочисленный массив с той же формой, как массив Y, где элементы Y сначала находятся в X. Если элемент Y не может быть найден в Х, то соответствующий элемент R будет ⎕ IO+⊃ ⍴ X. Элементы X и Y считаются одинаковыми, если X≡ Y возвращает 1 для этих элементов. ⎕ IO и ⎕ CT/⎕ DCT неявные аргументы Индекса вхождения. Пример ⎕ IO← 1 2 4 3 1 4⍳ 1 2 3 4 5 4 1 3 2 6 'CAT' 'DOG' 'MOUSE'⍳ 'DOG' 'BIRD' 2 4 Левый аргумент с высшем рангом Если X является высшим рангом массива, функция находит первое возникновение подмножеств в Y, которые соответствуют основным ячейкам X, где основной ячейкой является подмножество на ведущей размерности Х с формой 1↓ ⍴ X. В этом случае форма результирующего R представляет собой (1-⍴ ⍴ X)↓ ⍴ Y. Если подмножество Y не может быть найдено в X, то соответствующий элемент R будет ⎕ IO+⊃ ⍴ X. Примеры X← 3 4⍴ ⍳ 12 X 1 2 3 4 5 6 7 8 9 10 11 12 X⍳ 1 2 3 4 Y← 2 4⍴ 1 2 3 4 9 10 11 12 Y 1 2 3 4 9 10 11 12 X⍳ Y 1 3 X⍳ 2 3 4 1 X1← 10 100 1000∘.+X X1 11 12 13 14 15 16 17 18 19 20 21 22 101 102 103 104 105 106 107 108 109 110 111 112 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 X1⍳ 100 1000∘.+X 2 3 Сумма R ← X + Y Формирование R ← X⍴ Y У может быть любым массивом. Х должен быть простым скаляром или вектором неотрицательных целых чисел. р представляет собой массив из формы X, элементы которого взяты из Y в последовательности от малого к большому и циклически повторяются, если требуется. Если Y пуст, R состоит из заполнения элементов Y (⊂ ε ⊃ Y с ⎕ ml ← 0). Если X содержит по меньшей мере один нуль, то R пуст. Если X является пустым вектором, то R является скаляром. Примеры 2 3⍴ ⍳ 8 1 2 3 4 5 6 2 3⍴ ⍳ 4 1 2 3 4 1 2 2 3⍴ ⍳ 0 0 0 0 0 0 0 Каждый {R}← f¨ Y f может быть любfz монадическая функция. У может быть любым массивом. Полученная функция применяется для функции F отдельно для каждого пункта У. Функция не обязательно возвращает результат. Если результат возвращается, R имеет ту же форму, Y, и его элементы. Элементы, полученные в результате применения функции F в соответствующее предметы Y. Если Y пуст, R определяется путем применения функции операнда раз К Y. Примеры ⍴ G ⍴ ¨ G 2 2 2 ⍴ ¨ ¨ G 3 3 4 4 5 5 +⎕ FX¨ ('FOO1' 'A← 1')('FOO2' 'A← 2') FOO1 FOO2 Принадлежность (⎕ ML≥ 1) R← ε Y MAT← 2 2⍴ 'MISS' 'IS' 'SIP' 'PI' ⋄ MAT MISS IS SIP PI ε MAT MISSISSIPPI M← 1 (2 2⍴ 2 3 4 5) (6(7 8)) M 1 2 3 6 7 8 4 5 ε M 1 2 3 4 5 6 7 8 Генератор случайных чисел R← X? Y R представляет собой целочисленный вектор, полученный путем X случайно выбранного из ⍳ Y без повторения. 7 40 24 28 12 3 36 49 20 44 2 35 1 13? 52 20 4 22 36 31 49 45 28 5 35 37 48 40
Расширение R← X\[K]Y
1 ¯ 2 3 ¯ 4 5\'A' A AAA AAAAA M 1 2 3 4 5 6 1 ¯ 2 2 0 1\M 1 0 0 2 2 0 3 4 0 0 5 5 0 6 1 0 1⍀ M 1 2 3 0 0 0 4 5 6 1 0 1\[1]M 1 2 3 0 0 0 4 5 6 1 ¯ 2 1\(1 2)(3 4 5) 1 2 0 0 0 0 3 4 5 Отбросить R← X↓ Y Y может быть любым массивом. Х должен быть простым скаляром или вектором целых чисел. Если X является скаляром, то он рассматривается как одноэлементный вектор. Если Y является скаляром, то он обрабатывается как массив, форма которого есть (⍴ X) ⍴ 1. После любых скалярных расширений, X должен быть меньше или равен Y. Любые недостающие элементы в X по умолчанию будут равны 0. R представляет собой массив того же ранга, Y, но с элементами удаленных из векторов вдоль каждой из осей Y. Примеры BOARD ¯ 5↓ 'OVERBOARD' OVER ⍴ 10↓ 'OVERBOARD' M ONE FAT FLY 0 ¯ 2↓ M OFF ¯ 2 ¯ 1↓ M ON 1↓ M FAT FLY M3← 2 3 4⍴ ⎕ A 1 1↓ M3 QRST UVWX ¯ 1 ¯ 1↓ M3 ABCD EFGH
Индексирование по возрастанию R← ⍋ Y Y должен быть простой или просто числовым массивом ранга, большего 0. R является целочисленным вектором, что ставит подмассивы вдоль первая оси в порядке возрастания. Если Y является числовым массивом, большего 1, элементы в каждом из массивов вдоль первой оси сравниваются с порядком первого элемента и последнего элемента. Примеры ⍋ 22.5 1 15 3 ¯ 4 5 2 4 3 1 M 2 3 5 1 4 7 2 3 5 1 2 6 2 3 4 5 2 4 ⍋ M 3 2 Раскрытие R← X⊃ Y R представляет собой элемент, выбранный из структуры Y в соответствии с X. Элементы X выбраются из более глубоких уровней последовательно в структуре Y. Элементы Х простые целые скаляры или векторы, которые идентифицируют набор показателей, по оси на определенном уровне вложенности Y высшем порядке. Простые скалярные значения Y могут быть определены с помощью пустых векторных элементов в X в произвольной глубине. Примеры G← 2 3⍴ G, ('MNO' 5)('PQR' 6) G ABC 1 DEF 2 GHI 3 JKL 4 MNO 5 PQR 6 ((⊂ 2 1), 1)⊃ G JKL (⊂ 2 1)⊃ G JKL 4
Совпадение R← X≡ Y Не пустые массивы являются идентичными, если они имеют одинаковую структуру и те же значения во всех соответствующих местах. Пустые массивы идентичны, если они имеют одинаковую форму и тот же прототип. Примеры ''≡ ⍳ 0 A THIS WORD A≡ 2 4⍴ 'THISWORD' A≡ ⍳ 10 +B← A A THIS THIS WORD WORD A≡ ⊃ B (0⍴ A)≡ 0⍴ B ' '=⊃ 0⍴ B 1 1 1 1 1 1 1 1 ' '=⊃ 0⍴ A
Векторизация R←, Y Примеры , M 1 2 3 4 5 6 A ABC DEF GHI JKL , A ABCDEFGHIJKL ⍴, 10
Уникальность R← ∪ Y CAT DOG MOUSE FOX ∪ 22 10 22 22 21 10 5 10 22 10 21 5
Лекция от 2015.12.11 r← 1++/(? 100000⍴ 0)∘.> ¯ 1↓ +\p ⍴ (⍳ 4)∘.=r размерность массива 4 100000 +/(⍳ 4)∘.=r считает кол-во выпавших 1.2.3.4 19741 29896 40358 10005 +/(⍳ 4)∘.=r)÷ ⍴ r Вероятность выпадения 1, 2, 3 и 4 0.19741 0.29896 0.40358 0.10005 p 0.2 0.3 0.4 0.1 Границы вероятностей 2⍕ (+/(⍳ 4)∘.=r)÷ ⍴ r Округление до 2х знаков после запятой 0.20 0.30 0.40 0.10 1⍕ (+/(⍳ 4)∘.=r)÷ ⍴ r Округление до 1 знака после запятой 0.2 0.3 0.4 0.1 10⊤ ⍳ 4 ⊤ - Кодирование 1 2 3 4 10⊥ ⍳ 4 ⊥ - Декодирование ⍳ 4 1 2 3 4 1 2 3 4× 10*⌽ 0, ⍳ 3 1000 200 30 4 +/1 2 3 4× 10*⌽ 0, ⍳ 3 ⍴ ⍳ ¨ ⍳ 9 Размерность вектора векторов
⍴ ¨ ⍳ ¨ ⍳ 9 размерность для каждого вектора 1 2 3 4 5 6 7 8 9 10⊥ ¨ ⍳ ¨ ⍳ 9 декодирование для каждого вектора 1 12 123 1234 12345 123456 1234567 12345678 123456789 (⍳ 9)+8× 10⊥ ¨ ⍳ ¨ ⍳ 9 разворачиваем декодированный вектор относительно 9 9 98 987 9876 98765 987654 9876543 98765432 987654321 , [1.5]10⊥ ¨ ⍳ ¨ ⍳ 9 Строим «ёлочку» по полученным данным (, [1.5]10⊥ ¨ ⍳ ¨ ⍳ 9), ⊂ '× 8+' Слепляем с вектором 1 × 8+ 12 × 8+ 123 × 8+ 1234 × 8+ 12345 × 8+ 123456 × 8+ 1234567 × 8+ 12345678 × 8+ 123456789 × 8+
⍴ (, [1.5]10⊥ ¨ ⍳ ¨ ⍳ 9) размерность ёлочки 9 1 (, [1.5]10⊥ ¨ ⍳ ¨ ⍳ 9), (⊂ '× 8 +'), [1.5]⍳ 9 Прилепляем вектор столбиком 1-9 1 × 8 + 1 12 × 8 + 2 123 × 8 + 3 1234 × 8 + 4 12345 × 8 + 5 123456 × 8 + 6 1234567 × 8 + 7 12345678 × 8 + 8 123456789 × 8 + 9
(, [1.5]10⊥ ¨ ⍳ ¨ ⍳ 9), (⊂ '× 8 +'), (, [1.5]⍳ 9), ⊂ ' = ' Прикрепляем «=» 1 × 8 + 1 = 12 × 8 + 2 = 123 × 8 + 3 = 1234 × 8 + 4 = 12345 × 8 + 5 = 123456 × 8 + 6 = 1234567 × 8 + 7 = 12345678 × 8 + 8 = 123456789 × 8 + 9 =
(⍳ 9)+8× 10⊥ ¨ ⍳ ¨ ⍳ 9 формируем ответ 9 98 987 9876 98765 987654 9876543 98765432 987654321 (, [1.5]10⊥ ¨ ⍳ ¨ ⍳ 9), (⊂ '× 8 +'), (, [1.5]⍳ 9), (⊂ ' = '),, [1.5](⍳ 9)+8× 10⊥ ¨ ⍳ ¨ ⍳ 9 Добавляем ответ 1 × 8 + 1 = 9 12 × 8 + 2 = 98 123 × 8 + 3 = 987 1234 × 8 + 4 = 9876 12345 × 8 + 5 = 98765 123456 × 8 + 6 = 987654 1234567 × 8 + 7 = 9876543 12345678 × 8 + 8 = 98765432 123456789 × 8 + 9 = 987654321
⍴, [1.5](⍳ 9)+8× 10⊥ ¨ ⍳ ¨ ⍳ 9 размерность векторизованного ответа ёлки 9 1 ⍕, [1.5](⍳ 9)+8× 10⊥ ¨ ⍳ ¨ ⍳ 9 дополняем пробелами до 9
⍴ ⍕, [1.5](⍳ 9)+8× 10⊥ ¨ ⍳ ¨ ⍳ 9 размерность полученной матрицы 9 9 ⍴ (⌽ ¯ 1+⍳ 9)⌽ ⍕, [1.5](⍳ 9)+8× 10⊥ ¨ ⍳ ¨ ⍳ 9 размерность вращения относительно 9 столбца 9 9 (⌽ ¯ 1+⍳ 9)⌽ ⍕, [1.5](⍳ 9)+8× 10⊥ ¨ ⍳ ¨ ⍳ 9 отображение вращения (, [1.5]10⊥ ¨ ⍳ ¨ ⍳ 9), (⊂ '× 8 +'), (, [1.5]⍳ 9), (⊂ ' = '), (⌽ ¯ 1+⍳ 9)⌽ ⍕, [1.5](⍳ 9)+8× 10⊥ ¨ ⍳ ¨ ⍳ 9 готовый результат 1 × 8 + 1 = 9 12 × 8 + 2 = 98 123 × 8 + 3 = 987 1234 × 8 + 4 = 9876 12345 × 8 + 5 = 98765 123456 × 8 + 6 = 987654 1234567 × 8 + 7 = 9876543 12345678 × 8 + 8 = 98765432 123456789 × 8 + 9 = 987654321 Получается красивая симметричная ёлочка
)ed magic Magic делаем красивую ёлочку через функцию 1 × 8 + 1 = 9 12 × 8 + 2 = 98 123 × 8 + 3 = 987 1234 × 8 + 4 = 9876 12345 × 8 + 5 = 98765 123456 × 8 + 6 = 987654 1234567 × 8 + 7 = 9876543 12345678 × 8 + 8 = 98765432 123456789 × 8 + 9 = 987654321 )ed magic magic1 1 × 8 + 1 = 9 12 × 8 + 2 = 98 123 × 8 + 3 = 987 1234 × 8 + 4 = 9876 12345 × 8 + 5 = 98765 123456 × 8 + 6 = 987654 1234567 × 8 + 7 = 9876543 12345678 × 8 + 8 = 98765432 123456789 × 8 + 9 = 987654321
)ed magic1 А вот так можно получить её другим способом (⍳ 9)↑ ¨ '123456789' 1 2 3 4 5 6 7 8 9
(⍳ 9)↑ ¨ ⊂ '123456789' 1 12 123 1234 12345 123456 1234567 12345678 123456789 ⍎ ¨ (⍳ 9)↑ ¨ ⊂ '123456789' 1 12 123 1234 12345 123456 1234567 12345678 123456789 ⎕ d вектор от 0 до 9 ⍎ ¨ (⍳ 9)↑ ¨ ⊂ 1↓ ⎕ d Еще один способ получить ёлочку 1 12 123 1234 12345 123456 1234567 12345678 123456789 ⎕ vr'magic' ∇ magic; d Функция magic с локальной переменной d [1] d← 10⊥ ¨ ⍳ ¨ ⍳ 9 [2] r← (⌽ ¯ 1+⍳ 9)⌽ ⍕, [1.5](⍳ 9)+8× d [3] (, [1.5]d), (⊂ '× 8 +'), (, [1.5]⍳ 9), (⊂ ' = '), r ∇ ⎕ vr'magic1' ∇ magic1; d; r; n [1] n← ⍳ 9 [2] d← 10⊥ ¨ ⍳ ¨ n [3] r← (⌽ ¯ 1+n)⌽ ⍕, [1.5]n+8× d [4] (, [1.5]d), (⊂ '× 8 +'), (, [1.5]n), (⊂ ' = '), r ∇
Лабораторная работа №1
(1) b← 4+? 4⍴ 5 a← 1+? 4⍴ 4 (2) ⌈ /a ⌊ /a ⌈ /b ⌊ /b (3) c← a× b× 0.5 2 5 (3÷ 7) ⌈ /c ⌊ /c (4) maxc← ⌈ /c minc← ⌊ /c maxa← ⌈ /a mina← ⌊ /a maxb← ⌈ /b minb← ⌊ /b
w← maxc*2 e← minb*2 r← (2× mina)÷ e t← mina y← minc w+t-y-r 8096.111111 [5] aa← (? 7⍴ 10)+? 7⍴ 0 bb← (? 7⍴ 10)+? 7⍴ 0 aa 8.884485219 6.138106574 2.049734963 2.887637055 1.153631475 1.390293947 2.66267269 bb 2.158804476 4.638330789 10.81731833 5.424387704 5.938488889 8.324149972 8.388696439 .1× ⌊ 10× bb+.5 2.6 5.1 11.3 5.9 6.4 8.8 8.8 .1× ⌊ 10× aa +.5 9.3 6.6 2.5 3.3 1.6 1.8 3.1 .1× ⌈ 10× aa +.5 9.4 6.7 2.6 3.4 1.7 1.9 3.2 .1× ⌈ 10× bb+.5 2.7 5.2 11.4 6 6.5 8.9 8.9
Лабораторная работа №2 T← 30 24⍴ 10+? 35⍴ 20 ⍴ T 30 24 ⌈ /T 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 ⍴ ⌈ /T ⌈ /⌈ /T +/T 513 475 511 491 501 499 494 515 480 497 520 479 502 495 495 505 508 478 510 495 486 513 494 499 495 495 512 475 510 505 ⍴ +/T (+/T)÷ 24 21.375 19.79166667 21.29166667 20.45833333 20.875 20.79166667 20.58333333 21.45833333 20 20.70833333 21.66666667 19.95833333 20.91666667 20.625 20.625 21.04166667 21.16666667 19.91666667 21.25 20.625 20.25 21.375 20.58333333 20.79166667 20.625 20.625 21.33333333 19.79166667 21.25 21.04166667 (⍴ T)[2] (+/T)÷ (⍴ T)[2] 21.375 19.79166667 21.29166667 20.45833333 20.875 20.79166667 20.58333333 21.45833333 20 20.70833333 21.66666667 19.95833333 20.91666667 20.625 20.625 21.04166667 21.16666667 19.91666667 21.25 20.625 20.25 21.375 20.58333333 20.79166667 20.625 20.625 21.33333333 19.79166667 21.25 21.04166667 (+/+/T)÷ × /⍴ T 20.75972222
(+/[1]T)÷ (⍴ T)[1] 20.83333333 20.83333333 20.6 21.1 20.4 20.9 20.23333333 20.83333333 20.9 20.76666667 20.7 20.63333333 20.7 20.6 21.56666667 20.26666667 21.33333333 20.06666667 21.2 20.6 20.63333333 21.13333333 20.6 20.8 ⍴ (+/[1]T)÷ (⍴ T)[1] t← (+/[1]T)÷ (⍴ T)[1] t[10] 20.76666667 T←? 12 30 24 ⍴ 100 ⍴ T 12 30 24 T[3; 23; 17] ⍴ +/T 12 30 TT← +/T TT[8; 6] ⍴ T 12 30 24 ⍴ +/+/T ⍴ (+/+/T)÷ × /(⍴ T)[3 2]
Лабораторная работа №3
TBC← 'A375' 'A475' 'A390' 'A420' 'A515' 'A490' 'A365' 'A545' 'A505' 'A390' 'A410' 'A315' ⍴ TBC I←? 12⍴ 50 ⍴ I CO←? 12⍴ 50 ⍴ CO 3↑ TBC A375 A475 A390 ⌈ /I I⍳ ⌈ /I TBC[I⍳ ⌈ /I] A475 3↑ ⍒ I 2 1 8 TBC[3↑ ⍒ I] A475 A375 A545 TBC[5↑ ⍒ I+CO] A375 A475 A545 A365 A420 TBC⍳ ⊂ 'A420' CO[TBC⍳ ⊂ 'A420'] x← I[5↓ ⍒ I] x 29 24 23 18 17 16 7 +/x÷ ⍴ x 19.14285714 M← +/x÷ ⍴ x (I< M)/TBC A515 A505 A390 A410 ⍴ (I< M)/TBC ⍴ (I> M)/TBC
Лабораторная работа №4 Функция генерации заданного количества точек в заданном диапазоне c← 'prav. gran' b← 'lev. gran' a← 'kol. toch' h← 'interval' d← 'diapozon' d← c-b h← d÷ a-1 k← 'koord. toch. krome pervoy' k← b++/((a-1)1⍴ ⍳ a)× h z← 'result.' z← b, k
)ed points [0] z← a points bc; b; c; h [1] (b c)← bc [2] h← (c-b)÷ a-1 [3] z← b, b++/((a-1)1⍴ ⍳ a)× h
5 points 1 4 1 1.75 2.5 3.25 4 3 points 1 4 1 2.5 4 6 points 1 2 1 1.2 1.4 1.6 1.8 2
Лабораторная работа №5 1) Вычислить корни квадратного уравнения с заданными коэффициентами [0] k← a koren bc; b; c; d; x; y; k [2] d← (b*2)-4× a× c [3] x← ((-b)+d*0.5)÷ 2× a [4] y← ((-b)-d*0.5)÷ 2× a [5] k← x, y 1 koren 3 ¯ 4 1 ¯ 4 2) Функция вычисления расстояния между точками в пространстве [0] s← A rast B [1] s← (+/(A-B)*2)*0.5 A← 2 5 8 B← 1 3 2 A rast B 6.403124237
|