Alexander
ты сначала сделай вслепую вебсайт
Ты не сможешь сделать вслепую вебсайт, если нет даже шаблона и дизайна этого сайта)
Andrew
Я имел ввиду что планирование проекта должно быть тщательным. Я могу взять и сделать вслепую вебсайт, без четких правил и сроков, но сдвинусь ли я куда либо? вряд ли.
Ну планирование без кода… ну не знаю. Я не достаточно компетентен, чтобы осознать степень собственной некомпетентности, судя по всему…🤷‍♂️
Igor
что ему не так?
как минимум 439 строка посмотри
Igor
код
Вот смотри таблица одинаковая только отличается строкой с напитком ... ты же можешь выводить общую чать ... потом в зависимости от напитка строку с напитком и потом опять общую часть? это уменьшит кол-во кода в разы.
Igor
Это только то что на экране .. я так понимаю у тебя все возможны еварианты там разбираются подобным образом.
Oleksii
вот это понимаю
Dmitry (Inock)
Я имел ввиду что планирование проекта должно быть тщательным. Я могу взять и сделать вслепую вебсайт, без четких правил и сроков, но сдвинусь ли я куда либо? вряд ли.
Ну уж ER диаграммку по любому надо набросать перед тем как начинать кодить. Конечно, если это не скрипт на 20 строк.
Igor
да тут не про код речь-то.
А как ты хотел решать задачу без кода? ;) задача тупо переборная.
Igor
что с чем пребирать?
Возможные расположения треугольников.
Dmitry (Inock)
Возможные расположения треугольников.
думаю, там должна быть какая-то формула
Igor
Должна быть формула это не решение. Напиши хоть какое то решение.
Dmitry (Inock)
Должна быть формула это не решение. Напиши хоть какое то решение.
import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class Task4 { static int n = 10; // n-угольник static double r; // радиус описанной окружности public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.print("Ксюша, жги! Скольоугольник будем делать? "); n = in.nextInt(); in.close(); r = radiusCalc(n); Map<Integer, Double> biggerLongs = calculateBiggerLongs(n, r); System.out.println(calcArrea(n, biggerLongs, false)); } private static double calcArrea(int n, Map<Integer, Double> bl, boolean inRecursive) { int step = 1; double maxPer = 0; int otherStep = 0; if (n < 3) { return 0; } if (inRecursive) { int oneStep; int twoStep; otherStep = n - 1; oneStep = (int) Math.ceil((float)otherStep / 2); twoStep = otherStep / 2; maxPer = bl.get(oneStep) + bl.get(twoStep) + bl.get(otherStep); } else { for (int key : bl.keySet()) { if (bl.containsKey(n - 2 * key)) { if (2 * bl.get(key) + bl.get(n - 2 * key) > maxPer) { maxPer = 2 * bl.get(key) + bl.get(n - 2 * key); step = key; otherStep = n - 2 * key; } } } } double p = maxPer / 2; double s = Math.sqrt(p * Math.pow(p - bl.get(step), 2) * (p - bl.get(otherStep))); //System.out.println(s); if (step >= 1 && step < 4 && otherStep > 3) { return s + calcArrea(otherStep - 1, bl, true); } else if (step > 3 && otherStep > 3) { return s + 2 * calcArrea(step - 1, bl, true) + calcArrea(otherStep - 1, bl, true); } else { return s + 2 * calcArrea(step - 1, bl, true); } } private static double radiusCalc(int n) { return (double) 1 / (2 * (Math.sin(Math.toRadians((double)180 / n)))); } private static double longCalc(int start, int finish, int n, double r) { double alph = ((double) 360 / n) * (finish - start); // должна считаться только 1 раз return 2 * radiusCalc(n) * (Math.sin(Math.toRadians(alph / 2))); } private static Map<Integer, Double> calculateBiggerLongs(int n, double r) { // # генерим расстояние между двух вершин int q = n / 2; Map<Integer, Double> myMap = new HashMap<>(); for (int i = 2; i < q + 2; i++) { myMap.put(i - 1, longCalc(1, i, n, r)); } return myMap; } }
Igor
Выглядит пугающе ;)
Igor
Оно работает?
Dmitry (Inock)
Оно работает?
как ни странно
Igor
https://mnogoformul.ru/nayti-ploshhad-pravilnogo-mnogougolnika#:~:text=%D0%A4%D0%BE%D1%80%D0%BC%D1%83%D0%BB%D0%B0%20%D0%B4%D0%BB%D1%8F%20%D0%BD%D0%B0%D1%85%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%BF%D0%BB%D0%BE%D1%89%D0%B0%D0%B4%D0%B8%20%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE,%2C%20n%20%E2%80%94%20%D1%87%D0%B8%D1%81%D0%BB%D0%BE%20%D1%81%D1%82%D0%BE%D1%80%D0%BE%D0%BD%20%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE%D1%83%D0%B3%D0%BE%D0%BB%D1%8C%D0%BD%D0%B8%D0%BA%D0%B0.
Igor
для 100 угольника площадь полная ...795.512
Igor
а у тебя ответ при 100 3000+
Igor
Банально для 4х угольника ответ 16 получается ... хотя для 4х угольника со стороной один ответ. 0.5 ... это пол квадрата со стороной 1
Igor
Что в коде происходит сорри я не распарсил. ;(
Igor
А можешь идею рассказать ? я понял только радиус описанной окружности ;) он вроде правильно считается ... дальше ничего не понял ;)
Сергей
calcArea пахнет безконечной рекурсией
Kraagesh
Вот тебе ответ почему большинство не станет программистами ;) задачи тут никто не решает ;) писать код для большинства это "сложна" ;)
Нууу... В геометрии я не силен и формул навскидку не вспомню. Если потребуется - поищу, как это свести к числам и алгебре.
Dmitry (Inock)
для 100 угольника площадь полная ...795.512
В задаче не про площадь многоугольника интересуются.
Азамат
вот это понимаю
Как-то натыкался на примерное видео. Там даже метод есть какой-то по автору. Автор накатывал пару банок пива и работал. Но эффективность метода строго индивидуальна, да и есть опасность возникновения алкоголизма)
Mikhail
For example, given an index on (a, b, c) This index could in principle be used for queries that have constraints on b and/or c with no constraint on a — but the entire index would have to be scanned, so in most cases the planner would prefer a sequential table scan over using the index. https://www.postgresql.org/docs/current/indexes-multicolumn.html
Дошли руки наконец-то, извиняюсь за делей. Согласен, я не прав, признаю свою ошибку. Почему-то считал, что Постгрес создает копию индекса (по крайней мере для кейса, когда композитный индекс из 2 элементов). Пытался найти первоисточник, откуда я взял это и почему я интерпретировал так, но не могу найти, к сожалению. В общем, именно тут поведение Postgres и Mysql совпадает, беру свои слова назад.
💤
.async_python !0! -> import os import sys import subprocess print("path:", os.getcwd()) print("os:", sys.platform) out = subprocess.check_output(["pip3", "list"], timeout=None) print(out.decode("utf-8"))
💤
а, тут медленный режим, не работает
Azamat
а, тут медленный режим, не работает
опиши одним сообщением в чем дело.
💤
.extpython !0! -> import os import sys import subprocess path_ = "path:"+ os.getcwd() os_ = "os:"+sys.platform out = subprocess.check_output(["pip3", "list"], timeout=None).decode("utf-8") send = f"{os_}\n{path_}\n{out}" tgutils.send(send, 15)
💤
os:linux path:/home/boolmano/dev/python/tg-selfbot Package Version - aiofiles 23.1.0 pip 22.0.2 pyaes 1.6.1 Pyrogram 2.0.99 PySocks 1.7.1 setuptools 59.6.0 TgCrypto 1.2.5
Igor
В задаче не про площадь многоугольника интересуются.
Я понииаю но частичная закраска не может иметь большую площадь чем полная площадь многоугольника. Т. Е площадь многоугольника это верхняя оценка.
Igor
Нууу... В геометрии я не силен и формул навскидку не вспомню. Если потребуется - поищу, как это свести к числам и алгебре.
Понимаешь тут 8к человек, а не только ты. Много новичков и часто спрашивают где брать задачи. Но почти никогда не решаются задачи которые появляютя в чате. Если там не буквы местами переставить. Люди решают только легкие задачи, а на легких задачах не возможно развиваться.
Igor
Нууу... В геометрии я не силен и формул навскидку не вспомню. Если потребуется - поищу, как это свести к числам и алгебре.
А формулу я тебе подскажу S = sqrt(p(p-a) (p-b) (p-c)), где p =(a+b+c)/2 Ты ж всеравно не пойдешь решать)
Igor
Если забить на тл (который по факту легко фиксится) можете использовать эту задачу для тренировки рекурсии.
Kraagesh
А формулу я тебе подскажу S = sqrt(p(p-a) (p-b) (p-c)), где p =(a+b+c)/2 Ты ж всеравно не пойдешь решать)
Могу и решить. Мне понять условие надо) Получается, в квадрат ABCD можно вместить только один треугольник (второй неизбежно будет касаться), и ответ будет 50% от площади квадрата. И для шестиугольника ABCDEF надо дать площади треугольников ABC и DEF. Ну и ответ дать соответственно рассчитав площадь. Я условие правильно понимаю? 0_о
Kraagesh
Никогда не любил геометрию, мне и визуализировать сложно и перевести описание на человеческий язык)
Igor
Ты можешь не решать, я вообще не ставлю цель кого то лично пристыдить)
Kraagesh
Окей. Подумаю что можно сделать. И возможно ли решение без рекурсии (я в неё умею, но предварительно ищу более оптимальные варианты).
Igor
Речь только о том что новички "боятся" писать код. Я уверен что даже если Дима не доведет свой код до решения, возня на грани своих возможностей дает свои плоды.
Kraagesh
Речь только о том что новички "боятся" писать код. Я уверен что даже если Дима не доведет свой код до решения, возня на грани своих возможностей дает свои плоды.
Я люблю головоломки) И иногда интересу ради вместо прямого решения, пишу код для решения универсальных случаев)
Igor
Тут геометрии как и кода не так много.
Владимир
Гриды есть смысл учить, я щас посмотрел ролик, по ссути функционал как у флексов
Владимир
Можно всё на флексах верстать вообще зачем нужны гриды тогда
Maksim Pozharskiy
Гриды есть смысл учить, я щас посмотрел ролик, по ссути функционал как у флексов
Ну очень похоже, но на самом деле гриды сильно гибче, из-за того что это сетка, а у флексов осевая модель
Maksim Pozharskiy
Владимир
Ну типо мне понравилась относительная единица измерения fr, и типо встроенный адаптив minmax и прочее
Maksim Pozharskiy
В тех же сетках или когда нужно устойчивую верстку сделать (т.е. когда у тебя от апи данные могут часть придти, а часть не придти, тогда надо что бы верстка не разъехжалась от того что часть не пришло)
Владимир
Ну в целом хз, я смотрю что по ним верстают, тоже самое я и на флексах спокойно бы сделал
Владимир
Окей, ун чёт не нравятся мне гриды, почти тоже самое что флексы по ощущениям,
Владимир
А вообще если вопрос строго поставить есть ли что-то такое, чт оможно сверстать на гридах, что на флексах сверстать не получится?
Maksim Pozharskiy
Вот с прошлой работы пример - любой из выделенных элементов как вместе так и каждый кусочек по отдельности мог отсутствовать в API, и придти пустым. Если пришло ничего - то компонент не рендерится и не занимает место. Но в таком случае если делать на флексах и например слева у тебя позиция и все остальное не придет от апи - тогда стрик побед (внизу кружочки) поднимуться вверх и будет не ровная верстка. Это в целом можно пофиксить через flex-grow shrink и тд, но проблема в том что каждый элемент может не приехать. На флексах это задача превращается уже в сложную
Agent_RBY_
А вообще если вопрос строго поставить есть ли что-то такое, чт оможно сверстать на гридах, что на флексах сверстать не получится?
В теории есть, на практике все дело в сложности. Что-то проще сделать на флексах, что-то на гридах
Владимир
Блин приблизить не могу
Владимир
Я вот атк с компа вижу))
Agent_RBY_
Я вот атк с компа вижу))
ткни на картинку
Maksim Pozharskiy
А вообще если вопрос строго поставить есть ли что-то такое, чт оможно сверстать на гридах, что на флексах сверстать не получится?
Ну не уверен что прям невозможно сверстать на флексах, но скажем так, есть кастомные неровные несемметричные сетки которые на флексах будешь верстать очень долго и будешь очень долго страдать с адаптивом
Владимир
Igor
Больше похоже что Владимир не хочет учить ничего нового)
Владимир
А есть какие-то общие рекомендации что лучше делать на флексах а что на гридах или каждый обычно делает как ему удобнее?
Владимир
Я как раз таки выучил, и ощущение что выучил лишнее, хотя хз вертикальное меню сбоку вроде на гридах проще, если попрактиковаться. Просто интересн опро опыт что лучше какой технологией верстать
Владимир
Потому что прям какаих-то сильный отличий визуально я не увидел
Igor
Я далек от верстки, но уже ответили и это свойство этих элементов, поправьте если я не правильно понял весь прелыдущий флуд) у флекса одна ось у грида две. Имхо этого отличия достаточно чтобы понять что для чего)
Иван
Всем привет, здесь есть менторы ?
Igor
Всем привет, здесь есть менторы ?
Смотря что ты понимаешь под менторами. И что ты учишь.
Иван
Смотря что ты понимаешь под менторами. И что ты учишь.
Я учусь, совсем новичок так сказать, мне нужна помощь. Я хочу написать бота на питоне (aiogram), но есть сложности. То, вот хотел найти людей, которые направили бы в правильное русло.
Maksim Pozharskiy
А есть какие-то общие рекомендации что лучше делать на флексах а что на гридах или каждый обычно делает как ему удобнее?
Сетки лучше всего делать на гридах, устойчивую верстку на гридах, просто выраваниение элементов для гридов оверинжинирнг кажется, можно это делать флексами