Про математику и программирование. Часть 2
Всем привет, мои злобные печенюги!
Пишу продолжение своему посту (все думают, что я слился, а я в бане парился, поэтому не смог ответить на ту теплоту, с которой зашёл первый пост).
Основная мысль - программисту без математики никак. И у меня здесь животрепещущий пример этому утверждению (ибо давненько не было программирования в группе про программирование).
Сама задача
Это дополнительная задача с пометкой "сложная" из курса по Python программы Sololearn. От пользователя принимается слово. Необходимо указать его порядковый номер в ряду всех возможных комбинаций, составленных из букв этого слова. Комбинации при этом располагаются по возрастанию. Вот такая в принципе задача. У нас в армии говорят, что любую задачу можно выполнить: правильно, неправильно и по-армейски. И вот первое решение, без всяких математических знаний, как говорится, по-армейски. То есть как бы правильно, но...
Решение № 1: не математическое, армейское.
Само решение:
from collections import OrderedDict
slovo = input()
sinbol = list(slovo)
sinbol.sort()
azbuka = []
kod = ""
kol_simv = []
i = 0
while i <= (len(sinbol)-1):
if i == 0:
kod += "1"
kol_simv.append(1)
i += 1
azbuka.append(sinbol[0])
continue
if sinbol[i-1] == sinbol[i]:
kod += str(int(kod[len(kod)-1]))
kol_simv[len(kol_simv)-1] += 1
else:
kod += str(int(kod[len(kod)-1])+1)
kol_simv.append(1)
azbuka.append(sinbol[i])
i += 1
i = 1
tabl_index = []
minimum = ""
maximum = ""
while i <= len(slovo):
minimum += str(i)
i += 1
i = len(slovo)
while i >= 1:
maximum += str(i)
i -= 1
minimum = int(minimum)
minimum1 = minimum
maximum = int(maximum)
while minimum <= maximum:
for i in str(minimum1):
if not (str(minimum).count(i) == 1):
j = 0
while j <= len(str(minimum))-1:
if not (str(minimum1).count(str(minimum)[j]) == 1):
minimum += int("1"+("0"*(len(str(minimum))-j-1)))
j = ""
break
j += 1
if j == "":
break;
minimum += 1
break
if i == str(len(str(minimum))):
s = 0
t = 0
summ = 0
ebat = minimum
huy=""
#Работа тут!!! перебор строки и сравнение ее значений
#с нужным количеством симв
while s <= len(str(ebat))-1:
while t <= (len(kol_simv)-1):
#print(t+1)
summ += kol_simv[t]
if summ >= int((str(ebat))[s]):
#print("Заменю "+(str(ebat))[s]+" на "+str(t+1))
#ebat = str(ebat).replace((str(ebat))[s], (str(t+1)))
huy += str(t+1)
t = 0
summ = 0
break
#print("Смотрю симв "+(str(minimum))[s]+" должно быть "+str(t+1)+" в количестве "+str(kol_simv[t]))
t += 1
summ = 0
t = 0
s += 1
#ebat = int(ebat) - int("1"*len(ebat))
tabl_index.append(huy)
minimum += 1
print(huy)
tabl_index = list(OrderedDict.fromkeys(tabl_index))
ddd =""
for i in slovo:
ddd += str(azbuka.index(i)+1)
print(tabl_index.index(ddd)+1)
Коротко как все тут работает:
От пользователя принимается слово. Далее из букв этого слова составляются все возможные комбинации слов, повторы удаляются. В конце концов, в последовательности ищется слово пользователя, выводится его порядковый номер. Здесь есть кой-чего лишнего, но на скорость работы это критического влияния не оказывает.
Критическое влияние оказывает количество комбинаций и, как следствие, количество итераций. Программа быстро обрабатывает слова до 5 - 6 букв, а если их больше, то все. Компилятор для андроид Coding Python может провести вычисления, и они все верны, но сама обучающая программа пишет что-то вроде No output при попытке провести вычисления.
Словом, решение работает, но так, что ну его в пень. Предвижу заявления, что можно сразу сравнивать искомое слово с каждым новым и сразу сравнивать каждое новое сочетание с уже имеющимися, удаляя повторы. Отвечу - можно, но на быстродействие этот не окажет большого влияния, подумайте про слово "Югославия", оно в ряду 295.753-е...
Решение №2: математическое
# принимаем слово, сортируем буквы и кодируем (в строках 4 и 5 так и должно быть, иначе компилятор почему то сортирует обе переменные)
slovo = input()
slovo_poryadok = slovo
chislo_poryadok = slovo
chislo = slovo
chislo_zagotovka = slovo
slovarb = slovo
i = 0
chislo_poryadok = list(chislo_poryadok)
slovarb = list(slovarb)
for i in range(len(chislo_poryadok)):
chislo_poryadok[i] = 0
slovo = list(slovo)
slovo_poryadok = list(slovo_poryadok)
slovo_poryadok.sort()
i = 0
j = 0
for i in range(len(slovo_poryadok)):
if i == 0:
chislo_poryadok[i] = 1
slovarb[j] = slovo_poryadok[i]
else:
if slovo_poryadok[i-1] == slovo_poryadok[i]:
chislo_poryadok[i] = chislo_poryadok[i-1]
if slovo_poryadok[i-1] != slovo_poryadok[i]:
chislo_poryadok[i] = int(chislo_poryadok[i-1])+1
slovarb[j+1] = slovo_poryadok[i]
j += 1
del slovarb[j+1:]
# проводим математические расчёты (вычисляем общее количество комбинаций в зависимости от количества повторящихся букв)
k = 1
kol_komb = 1
while k <= (i+1):
kol_komb *= k
k += 1
for k in range(len(slovarb)):
n = 1
while n <= slovo_poryadok.count(slovarb[k]):
kol_komb /= n
n += 1
kol_komb = int(kol_komb)
# переводим слово в числовой код
chislo = list(chislo)
chislo_zagotovka = list(chislo_zagotovka)
for n in range(len(chislo)):
chislo[n] = slovarb.index(chislo[n]) + 1
chislo_zagotovka[n] = chislo[n]
#ищем положение слова в ряду
diapazon = kol_komb
otstup = 0
for i in range(len(chislo)):
for j in range(len(slovarb)):
if slovarb[j] < slovo[0]:
otstup += diapazon*(slovo.count(slovarb[j]))/len(slovo)
if j == len(slovarb)-1:
diapazon = diapazon/(len(slovo)/(slovo.count(slovo[0])))
del slovo[:1]
print(slovo, diapazon, otstup)
print(int(otstup)+int(diapazon))
Как это работает?
От пользователя принимается слово. Далее проводим математические вычисления, вычисляем общее количество комбинаций из указанных букв (учитывая, что буквы повторяются):
где n - это общее количество символов включая повторы, a с индексом b - количество повторений символов. Если всех символов по одному (как в слове "один"), то и формула превращается в одинокий факториал.
В конце всего ищем положения слова в ряду, используя количество комбинаций, количество символов. Определяющими величинами будут:
Otstup - при первой итерации равен нулю, по сути он и является искомым положением, находится эвристически, мы просто отбрасываем области, где заведомо указанного значения нет (а именно - комбинации (слова), начинающиеся с более "младшей" буквы).
Diapazon - при первой итерации равен общему количеству комбинаций (слов), показывает рассматриваемую область. По существу мы анализируем наше слово с первой буквы, отбрасывая все комбинации (слова), где первая буква - другая. Далее переходим ко второй букве и так до конца слова.
Количество комбинаций (слов), где есть нужная нам первая буква вычисляется по формуле:
где n - количество букв в слове, а с индексом 1 - количество повторений первой буквы слова.
Такое решение ввиду его скорости программа Sololearn приняла. Так что математика в программировании рулит, здравия желаю!
Пэ. Сэ.: Вентилятор раскрутил, жду отборного дерьма комментария. Вообще, когда решал задачу, была мысль, что наверно есть какие то библиотеки для работы с комбинациями или вовсе - что-то такое явное из базового программирования, что я проглядел...
Использование записей на карточках при работе над литературным произведением по Стендалю
Данная статья относится к Категории 🔑 Метод – умение решать задачи
Фредерик Стендаль (Анри-Мари Бейль) — французский писатель, создатель жанра психологического романа
«С двадцатилетнего возраста Бейль ведёт записи в заранее переплетённых тетрадях.
Когда он стремится почерпнуть вдохновение из какой-нибудь книги, он начинает с перевода, уже сокращённого и сжатого, но составляющего последовательный текст. Переводя, перечитывая, часто вшивая в тетрадь новые листы, он добавляет собственные мысли и комментарии.
Это уже нечто противоположное бесконечным планам и слишком утончённым приёмам, характерным для сочинений его ранней юности. Он пытался следовать тому же методу, что и в драматургии, когда переделывал Зелинду и Линдора. Это избавляло, его от страха перед чистой бумагой, от ужаса, который испытывают все начинающие при мысли о том, что придётся, создавать всё из ничего. Этот метод излечивал также от иллюзорной уверенности в том, что с самого начала ты можешь написать слишком хорошо. Бейль (в шутку) говорит о Ланци 29 октября 1811 года: Он – причина всей этой болтовни. Он бранит Леонардо за то, что тот стремился создавать только шедевры. Чтобы не впасть в ту же ошибку, что и этот необыкновенный человек, я только что исписал четыре страницы одними бесцветными фразами.
Писать каждый день, даровит ты или нет, – это один из главных принципов своеобразия приёмов его мастерства, которые он здесь ещё раз открывает. Но способ ведения последовательных записей в тетрадях сковывает эрудита и эссеиста; он заставляет вставлять в окончательный текст слишком большие отрывки из сочинения, послужившего источником, и эти отрывки легко узнать.
Во времена Бейля карточками пользовались только для составления каталогов. Эрудиты – те по крайней мере умели выделять в своих тетрадях заметки в несколько строк; если было нужно, они вырезали их ножницами.
Они добивались того же самого, что современным историкам и биографам даёт карточка: возможности расчленить тексты, которыми они пользуются, на отрывки в одну строку, выделить одну дату, один факт: они с лёгкостью смешивают несколько источников; растворяют в пределах одной фразы и комментарий и источник, а главное, располагают и распределяют по своей воле необходимые для них материалы.
Вместо мозаики, с которой не всегда легко обращаться, где отдельные грани слишком заметны, где трудно создать единое впечатление из-за резкости некоторых оттенков, им легко удается достичь с тем же количеством заимствований большей общности колорита; им не нужно ломать голову, чтобы казаться оригинальнее.
Бейль сам чуть заново не изобрёл карточек. В книге «О любви» он говорит о заметках, сделанных на игральных картах. Его привычка к бумаге, к обложкам, его склонность к последовательному изложению мыслей в тетрадях способствовали невольным плагиатам. Трудно разорвать на куски длинный текст, который вы списали из одного источника. (Только не думайте, что эти наблюдения недостойны упоминания в литературной критике: опыт показывает, что они имеют такое же значение, как краски и кисти для художника.)»
Жан Прево. Стендаль. Опыт исследования литературного мастерства и психологии писателя, М.-Л. Государственное издательство художественной литературы, 1960 г. с. 103-104.
Фрагмент текста цитируется согласно ГК РФ, Статья 1274. Свободное использование произведения в информационных, научных, учебных или культурных целях.
Если публикация Вас заинтересовала – поставьте лайк или напишите об этом комментарий внизу страницы.
Дополнительные материалы
Правила написания стихов по юному М.Ю. Лермонтову
Комбинаторика — более 70-ти материалов по теме
см. термин Плагиат & Антиплагиат в 🔖 Словаре проекта VIKENT. RU
+ Плейлист из 5-ти видео: КАРТОТЕКИ / БАЗЫ ДАННЫХ
+ Ваши дополнительные возможности:
Идёт приём Ваших новых вопросов по более чем 400-м направлениям творческой деятельности – на онлайн-консультации третье воскресенье каждого месяца в 19:59 (мск). Это принципиально бесплатный формат.
Задать вопросы Вы свободно можете здесь:
+ Все инструкции по работе с порталом VIKENT.RU: https://vikent.ru/instructions/
Изображения в статье
Фредерик Стендаль (Анри-Мари Бейль) — французский писатель, создатель жанра психологического романа / Public Domain & На фоне — изображение создано нейросетью Kandinsky 2.1
Изображение создано нейросетью Kandinsky 2.1
Кемпер в космо-стиле с телескопом и космо-авиа-симулятором
Немного отвлечемся от скучных теорий в сторону практического проектирования. Потренируемся на прицепах-кемперах.
Нео-Космизм - у нас это центральная концептуальная идея, на которую стыкуется все остальное.
Поэтому дизайн кемпера стилизуется под космический шаттл, добавляется цифровой телескоп для астрономических наблюдений, обзорная сфера, спутниковая антенна, солнечные батареи, компьютер и мониторы, а также источник бесперебойного питания.
Модель Космо-Шаттл - 1. Площадь 12 м2
Космо-Шаттл - кроме выполнения функций кемпера, предназначен для астрономических наблюдений, может использоваться в качестве интерактивного кинотеатра, в качестве космо-авиа-симулятора (а также симулятора подводной лодки и надводных кораблей), для удаленного управления дронами и другой техникой.
Таким образом применяется принцип мультифункциональности(комбинаторики), что повышает ценность продукта на единицу площади и времени.
Кабина пилотов с креслами из модели шаттла «Галилео» из оригинального сериала Звездный путь
Видеоигры с обзором на 180 градусов будут интересны детям от 2 до 100 лет
Можно их будет совмещать с шлемом виртуальной реальности. Например, в игре типа "Subnautica": шаттл мог бы симулировать подводную лодку "Мореход", а вылазки осуществлялись бы в шлеме виртуальной реальности на площадку с песком, где были бы закопаны физические брелки-ресурсы со штрихкодом, которые надо было бы сканировать (сканером для штрихкодов) для интеграции с игрой.
Подводная лодка - "Мореход" (Кадр из игры Subnautica: Below Zero)
В качестве опции можно добавить интерактивную пневмоподвеску для симуляции поворотов и ускорений.
Пример виртуального аттракциона с пневмоподвеской
Разные типы использования космо-кемпера
Личное использование в качестве кемпера, а также в качестве домика для гостей
Сдача напрокат. Обычный маленький кемпер сдается примерно за 2т.р./сутки, а мультимедийный космический кемпер с обсерваторией можно будет сдавать за 5-7т.р.
Если у вас есть своя база отдыха или кемпинг, то вы можете использовать такой шаттл в качестве центра развлечений, как допуслугу.
В качестве мобильного центра управления для аэросъемок с дрона
В качестве запасного источника электроэнергии для дома. ИБП с выходом на 220V потянет не только смартфоны и ноутбуки но и ТВ и даже чайник
Даже в поселках имеется световое загрязнение, которое мешает астрономическим наблюдениям и такая мобильная обсерватория позволяет выезжать в темные места.
Можно отдохнуть на природе, понаблюдать небесные тела, и поиграть в космо-авиа-симуляторы, все за одну поездку.
Космо-Шаттл-Мини - 1 (По центру) Площадь: 5м2; Космо-Шаттл-Киндер -1 (Справа)
Принцип линейки продукции со сквозным стилем. Шаттл меньшего размера будет стоить меньше. (Модели под разный бюджет)
Космо-Шаттал-Киндер - 1 Это просто качалка на пружинах для детской площадки, за исключением мультимедийности привнесенной смартфоном, который крепиться на панели и позволяет играть в игры с акселерометром посредством наклонов качалки. Можно печатать держатели для смартфона с прищепкой под любую качалку на пружинах на детской площадке, и таким образом делать их мультимедийными. (Возможно в этом году я проведу такой эксперимент)
Принцип приставки: Дополнительная функциональность добавляемая к стандартному объекту среды
Таким образом на практике можно применять: сквозной стиль, принципы мультифункциональности, комбинаторики, принцип линейки продукции, принцип приставки, принцип опциальности.
Так из любой теории можно выводить практику и из любой практики можно выводить теоретические принципы.
Ищем промышленного дизайнера , а также архитектора в команду...
Практическая комбинаторика против интуиции
Иногда можно услышать мнение: — "Мол, все уже придумано давно. Не надо изобретать велосипед. Нот всего семь." — и т. д. и т. п.
На самом деле, это абсолютная "ересь". Подобное мнение основано на интуиции, которая часто ошибается.
Математическая комбинаторика, позволяет сделать правильный расчет там, где интуиция не справляется.
Приведу актуальный и практический пример.
Существует салатный робот комбинирующий салаты из 21 продукта.
И у меня возник резонный вопрос: — "Сколько всего вариантов салатов можно составить из 21 компонента?"
Итак, что подсказывает ваша интуиция по этом вопросу?
Правильный ответ: 2^21 = 2 097 151 или если соус не считать, для 20 компонентов 2^20 = 1 048 575
Получается, что простор для кулинарного творчества просто огромный, так как продуктов намного больше 20, при том что еще нужно учитывать соотношение компонентов, методы приготовления, температуру, формы нарезки, и многое другое. Любой любитель может изобрести новый салат, который может быть станет новым "Цезарем". Собственно уникальные народные кухни мира так и создавались в значительной степени любителями, а не только профессиональными поварами.
После того как продукты преодолели национальные границы, количество их комбинаций устремилось к бесконечности.
То же и в техносфере: чем больше изобретается, тем больше можно комбинировать, тем больше может быть изобретено.
Количество смешного также растет, по тому же принципу.
На этом же основаны лайфхаки, когда обычные люди изобретают новые способы использования повседневных вещей комбинируя их с друг другом.
Даже в музыкальной сфере, где новые ноты не изобретаются, количество музыкальных комбинаций далеко до исчерпания. (гугол гуглов)
В сфере виртуальности, в параллельном мире интернета, где вообще нет никаких ограничений, изобретено наверное только 1% из того что будет использоваться в ближайшие 20 лет.
Ничего еще не придумано! Все только начинается!
UPD:
К коллайдеру! Я сделаю салат из 21-го компонента сразу.
Он будет вполне традиционный, съедобный, безопасный и возможно даже вкусный...
Кулинарные консервативные фанатики будут посрамлены!
Ответ MOHAPXl в «Ответ Bonusl в "Ну раз пошла такая пьянка, один из моих любимых анекдотов"»29
Подержите мою логарифмическую линейку...
Итак, у двух студентов скоро экзамен по комбинаторике ( наука о перестановках) и они пришли домой к профессору на консультацию.
Просидев и поразбирав различные задачи на комбинаторику, а также поиграв в различные игры более менее связанные с этим предметом, типа шашек, шахмат, всяких там го и прочих обнаруживают, что время позднее, метро закрыто и все такое Ну проыессор предлагает им переночевать, благо есть свободная комната. Прпвда кровать одна. яну студенты народ не прихотливый. Короче все улеглись и уснули.
Проходит час. Просыпается первый студент и думает:
- Блин, чего я лежу с этим. Пойду ка я, найду дочку профессора Она мне весь вечер глазки строила. Встал Вышел из комнаты идет в темноте. Открывает первую дверь: видит кровать и две головы на подушках: а, понятно. Это профессор с супругой. Идет дальше. Еще дверь. Открывает: там кровать и одна голова. Дочка. Тихонько прокрался и к ней под бочок.
Проходит минут 10. Просыпается профессор с с мыслями: надо к дочке. вон студенты то на нее глядели не дай бог совратят. Вышрл тоже идет открывает двери: первая: две головы в темноте не видно. наверноп студенты. Вторая одна. Ага, дочка. со слепу не разглядев прилег скраю.
Еще минут 15 проходит Просыпается второй студент. С теми же мыслями, не зная, что рядом спит профессор идет искать дочку. Такая же песня.
Утром профессор просыпается один в комнате студентов. Понять не может. Выходит открывает первую дверь: там дочкк с упоением отсасывает одному студенту, открывает вторую: там жена в поще наездницы скачет на члене другого студента. Чешет репу:
- Двадцать лет преподаю комбинаторику, но таких блядских комбинаций ни разу не видел.
Логическая машина Раймонда Луллия
Данная статья относится к Категории 🌌 История создания алгоритмов творчества
Раймунд Луллий заложил основы комбинаторики – он считал, что можно путём различных комбинаций уже известных понятий выводить новые истины (подобно тому, как из отдельных букв складываются отдельные слова - в том числе и новые...)
Его наиболее часто упоминаемая работа: Великое и окончательное искусство / Ars Magna et Ultima, где он описал возможную конструкцию логической машины.
Раймунд Луллий утверждал, что «…система его кругов была ему прямо открыта свыше. «Так как он был всего менее склонен к обманам и мистификациям, то должно предположить, что явившаяся в его воображении символическая схема разумной связи, проникающей все сферы бытия и познания, была им ошибочно принята и истолкована в буквальном механическом смысле». Ссылка Луллия на сверхъестественный источник, разумеется, не может заслонить от нас подлинных исторических источников его изобретения. На один он сам мимоходом указывает - это каббала. […]
Метод луллизма распадается на две части: первая знакомит нас с операциями, которые должен производить человеческий дух для совершения открытий. Это, собственно, и есть «Ars Magna», «искусство открывать всё, что способна открыть человеческая наука по любому вопросу, как частному, так и общему» (Bartholmess: «Giordano Bruno»).
Вторая заключает в себе сжатую энциклопедию знаний, уже приобретённых человечеством. В обеих частях намечались основные принципы богословия, метафизики, физики, этики и диалектики. Таким понятиям, как субъекты, соответствовали атрибуты (абсолютные или относительные), расположенные в известной классификации по кругам.
Всего было шесть концентрических кругов. На двух обозначались субъекты, на трёх - атрибуты. Шестой круг, наиболее отдалённый от центра, был неподвижным, и на нём обозначались всевозможные вопросы. Ближайший к крайнему подвижный круг заключал на себе девять основных категорий бытия, на втором помещались девять атрибутов бытия физического, на третьем - девять атрибутов бытия морального (девять добродетелей и девять пороков), на четвёртом и на пятом - девять атрибутов бытия физического и метафизического. Субъекты, termini generalissimi praedicatorum, могли с неисчерпаемым разнообразием комбинироваться с подходящими предикатами путём вращения кругов.
Говорят, этих комбинаций нельзя было бы исчерпать в тысячу лет, делая по миллиону комбинаций в час. Разумеется, при этом комбинировании необходимо принимать в расчёт, совместим ли субъект с данным атрибутом. На шестом круге значатся вопросы: utrum, quid, de quo, qua re, quantum, quale, quando, ubi, quomodo; этот вопросник назывался ключом изобретения. У Луллия были многочисленные последователи». Среди них заслуживают особенного внимания Джордано БруноиЛейбниц. […]
Джордано Бруно преследует цели научного знания, хотя и в очень примитивной форме. Он упростил и усовершенствовал систему Луллия. В первую часть он внёс:
1) Алфавит, заключающий в себе простейшие понятия под буквами В, С, D, E, F, G, Н, I, К. Каждой букве соответствуют несколько относительных и абсолютных атрибутов и некоторое количество возможных вопросов.
2) Силлабикум, где даны различные формы связи между субъектом и атрибутами, абсолютными и относительными.
3) Словарь (Lexicon), регулирующий различные формы связей суждений и их преобразования в различные предложения в процессе рассуждения.
Вторую часть Луллиева метода Бруноразделяет на семь отделов: 1) Проблемы, 2) Ответы, 3) Определения, 4) Рассуждения, 5) Развитие познания, 6) Приумножение познания и 7) Выяснение познания».
Лапшин И.И., Философия изобретения и изобретение в философии. Введение в историю философии, М., «Республика», 1999 г., с. 312-313.
Дополнительные материалы
Викентьев И.Л. Морфологический анализ, как способ решения бизнес-задач
Комбинаторика — более 70 материалов по теме
см. термин Критерии методики в 🔖 Словаре проекта VIKENT. RU
+ Плейлист из 20-ти видео: МЕТОДИКИ КРЕАТИВА / ТВОРЧЕСТВА
+ Ваши дополнительные возможности:Идёт приём Ваших новых вопросов по более чем 400-м направлениям творческой деятельности – на онлайн-консультацию третье воскресенье каждого месяца в 19:59 (мск). Это принципиально бесплатный формат.
Изображения в статье
Раймунд (Раймонд) Луллий — испанский (каталонский) богослов, писатель и алхимик / CC BY-SA 4.0 & Ars Magna Раймонда Луллия / ilcantooscuro
Страница из алхимического трактата Раймонда Луллия / Public Domain
Совета пост
Без рейтинга!
Совсем голову сломал, нам посты для охраны то назначают, то убирают, поэтому прошу помощи специалистов по комбинаторике и математиков.
Вводная такая;
- два поста, один круглосуточный, другой с 8-00 до 24-00 ч.
- три охранника, на отдых нужно выделить по 10 часов (а вообще по условиям вакансии, они должны работать по 16 часов), но это трудно, не выдерживают больше месяца, кто увольняется, кто начинает пить.
У меня получается,
о - отдых
р - работа
2о-4р-2о-4р-6о-6р,
Но народ не хочет так работать. А я не знаю как лучше предложить.
Я знаю что есть правило NYPA, но может кто нибудь предложит вариант?
Спасибо.