Kant #1101 1 апреля 2019 https://www.humblebundle.com/books/microsoft-and-dot-net-books хамбл на кучу книг мелкомягких Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью. Поделиться сообщением Ссылка на сообщение
Kant #1102 1 апреля 2019 в тинькове промоакция какая то, в конце логическая задача - поле 3х3 с рубильниками (on/off), каждый рубильник переключает соседние и сам себя (соседство только по горизонтали и вертикали, диагональ не считается). нужно переключить все рубильники в одно положение не осилил, написал сниппет который рандомно переключает один рубильник и чекает готово или нет, захуярил в цикле пока все не переключилось зачем думоть над задачей, когда можно забрутфорсить?такое только 8х8 вроде было в квесте братья пилоты как же я в своих 7 лет горел с этого ебучего холодильника, я так и не смог его открыть, пока не приехал двоюродный брат и за 3 минуты сделал :fffuuu: :fffuuu: :fffuuu: FeelYourDestiny, SKYnv и Matriarch понравилось это Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью. Поделиться сообщением Ссылка на сообщение
Index #1103 1 апреля 2019 в тинькове промоакция какая то, в конце логическая задача - поле 3х3 с рубильниками (on/off), каждый рубильник переключает соседние и сам себя (соседство только по горизонтали и вертикали, диагональ не считается). нужно переключить все рубильники в одно положение не осилил, написал сниппет который рандомно переключает один рубильник и чекает готово или нет, захуярил в цикле пока все не переключилось зачем думоть над задачей, когда можно забрутфорсить?А начальные условия какие? Поделиться сообщением Ссылка на сообщение
AskMe- #1104 1 апреля 2019 в тинькове промоакция какая то, в конце логическая задача - поле 3х3 с рубильниками (on/off), каждый рубильник переключает соседние и сам себя (соседство только по горизонтали и вертикали, диагональ не считается). нужно переключить все рубильники в одно положение не осилил, написал сниппет который рандомно переключает один рубильник и чекает готово или нет, захуярил в цикле пока все не переключилось зачем думоть над задачей, когда можно забрутфорсить?А начальные условия какие? да просто рубильники в каком нибудь рандомном положении стоят, какая разница? это как кубик рубика, начальное положение не сильно важно (если мы не считаем минимальное количество действий для сборки), все равно в конечную точку можно прийти из любой начальной Лишь ощутив баттхерт до конца, мы обретаем свободу Поделиться сообщением Ссылка на сообщение
moonfangtopich #1105 1 апреля 2019 зачем думоть над задачей, когда можно забрутфорсить?в адвент оф код регулярно бывает, что первая часть уровня - это поле 3х3, а вторая - 300х300, поэтому брутфорсерам приходится переписывать их халтуру ну и рекрутерам брутфорсеры тоже не нужны ясен хуй. или там только ответ сабмитишь, без кода? Поделиться сообщением Ссылка на сообщение
rilril #1106 1 апреля 2019 а что ты имеешь ввиду под ответом? Поделиться сообщением Ссылка на сообщение
Index #1107 1 апреля 2019 (изменено) если матрица 000000000то чтобы перевести в111111111надо нажать на рычаги101010101обходя сверху вниз слева направопытался развить эту идею для рандомного начала по всячески XORя исходную матрицу с паттерном, чтобы получить паттерн переключений, но что-то ничего толкового не вышло Я даже хуй знает решаема ли задача в один проход по матрице (одно переключение каждого рычага) для некоторых условий например 100000000 Если что мой говнокод @[member='test'] public void test() { int[][] matrix = { {0, 0, 0}, {0, 1, 0}, {0, 0, 0} }; System.out.printf("Before"); System.out.println(Arrays.deepToString(matrix)); solve(matrix); System.out.printf("After:" + Arrays.deepToString(matrix)); } private final static int[][] XOR_MATRIX = { {1, 0, 1}, {0, 1, 0}, {1, 0, 1} }; public void solve(int[][] matrix) { for (int i = 0; i < matrix.length; i++) { for (int j = 0; j < matrix.length; j++) { if (XOR_MATRIX[i][j] == 1) { toggleWithNeighbourhoods(matrix, i, j); } } } } public enum Direction { NORTH { @Override void toggleAtSide(int[][] matrix, int i, int j) { _toggle(matrix, i, j - 1); } }, EAST { @Override void toggleAtSide(int[][] matrix, int i, int j) { _toggle(matrix, i + 1, j); } }, SOUTH { @Override void toggleAtSide(int[][] matrix, int i, int j) { _toggle(matrix, i, j + 1); } }, WEST { @Override void toggleAtSide(int[][] matrix, int i, int j) { _toggle(matrix, i - 1, j); } }, CENTER { @Override void toggleAtSide(int[][] matrix, int i, int j) { _toggle(matrix, i, j); } }; protected final void _toggle(int[][] matrix, int i, int j) { if (isInBounds(matrix, i, j)) { matrix[i][j] ^= 1; } } abstract void toggleAtSide(int[][] matrix, int i, int j); } static boolean isInBounds(int[][] matrix, int i, int j) { if (i >= 0 && j >= 0) { if (i < matrix.length) { return j < matrix[0].length; } } return false; } void toggleWithNeighbourhoods(int[][] matrix, int i, int j) { for (Direction direction : Direction.values()) { direction.toggleAtSide(matrix, i, j); } } Вообще переключение в точках101010101 Инвертирует все рычагиа вот решаема ли задача по переводу 100000000в111111111или000000000 я хз, хз что там брутфорсил аскми Изменено 1 апреля 2019 пользователем Index Поделиться сообщением Ссылка на сообщение
hira88 #1108 1 апреля 2019 Index бросай эту хуйню и иди во фронтенд (но рофл) playforfunlol понравилось это Поделиться сообщением Ссылка на сообщение
JuJeu #1109 2 апреля 2019 (изменено) в тинькове промоакция какая то, в конце логическая задача - поле 3х3 с рубильниками (on/off), каждый рубильник переключает соседние и сам себя (соседство только по горизонтали и вертикали, диагональ не считается). нужно переключить все рубильники в одно положение не осилил, написал сниппет который рандомно переключает один рубильник и чекает готово или нет, захуярил в цикле пока все не переключилось зачем думоть над задачей, когда можно забрутфорсить?я не осилил даже абзац прочесть.. Изменено 2 апреля 2019 пользователем JuJeu Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders. Поделиться сообщением Ссылка на сообщение
Just.Doit #1110 2 апреля 2019 (изменено) если матрица 000000000 то чтобы перевести в111111111 надо нажать на рычаги101010101обходя сверху вниз слева направо пытался развить эту идею для рандомного начала по всячески XORя исходную матрицу с паттерном, чтобы получить паттерн переключений, но что-то ничего толкового не вышло Я даже хуй знает решаема ли задача в один проход по матрице (одно переключение каждого рычага) для некоторых условий например 100000000 Если что мой говнокод @[member='test'] public void test() { int[][] matrix = { {0, 0, 0}, {0, 1, 0}, {0, 0, 0} }; System.out.printf("Before"); System.out.println(Arrays.deepToString(matrix)); solve(matrix); System.out.printf("After:" + Arrays.deepToString(matrix)); } private final static int[][] XOR_MATRIX = { {1, 0, 1}, {0, 1, 0}, {1, 0, 1} }; public void solve(int[][] matrix) { for (int i = 0; i < matrix.length; i++) { for (int j = 0; j < matrix.length; j++) { if (XOR_MATRIX[i][j] == 1) { toggleWithNeighbourhoods(matrix, i, j); } } } } public enum Direction { NORTH { @Override void toggleAtSide(int[][] matrix, int i, int j) { _toggle(matrix, i, j - 1); } }, EAST { @Override void toggleAtSide(int[][] matrix, int i, int j) { _toggle(matrix, i + 1, j); } }, SOUTH { @Override void toggleAtSide(int[][] matrix, int i, int j) { _toggle(matrix, i, j + 1); } }, WEST { @Override void toggleAtSide(int[][] matrix, int i, int j) { _toggle(matrix, i - 1, j); } }, CENTER { @Override void toggleAtSide(int[][] matrix, int i, int j) { _toggle(matrix, i, j); } }; protected final void _toggle(int[][] matrix, int i, int j) { if (isInBounds(matrix, i, j)) { matrix[i][j] ^= 1; } } abstract void toggleAtSide(int[][] matrix, int i, int j); } static boolean isInBounds(int[][] matrix, int i, int j) { if (i >= 0 && j >= 0) { if (i < matrix.length) { return j < matrix[0].length; } } return false; } void toggleWithNeighbourhoods(int[][] matrix, int i, int j) { for (Direction direction : Direction.values()) { direction.toggleAtSide(matrix, i, j); } } Вообще переключение в точках101010101 Инвертирует все рычагиа вот решаема ли задача по переводу 100000000в111111111или000000000 я хз, хз что там брутфорсил аскми долго думал (гдето час-полтора)и придумал следующее: допустим размер игрового поля = nвозьмем что aij где i=1..n и j=1..n - матрица воздействий на рычаг (для решения задачи), назовем её A :a11 a12 .. a1na21 a22 .. a2n....................an1 an2 .. ann где каждая aij принимает значение 0 или 1 (или можно обозвать true false), где 1 обозначает что мы "трогаем" рычаг в данной позиции ij(тут можно доказать что значения >2 не имеют смысла тк все четные значения сводятся к 0 а нечетные к 1 (если дернем какой-то рычаг 2 раза то это равноценно тому что мы дернем 0 раз), также можно доказать что последовательность в которой дергаются различные рычаки не имеет значения а значит (+при условии предыдущего) любые сложнейшие комбинации которые вы у себя итеративно выстраивали в голове сводятся к простой матрице А состоящей только из 0 и 1) тогда можем задать матрицу B того как изменится наше поле после применения матрицы A, где bij = 0 если после применения схемы дерганий из матрицы А значение в ij позиции не поменялось, а bij = 1 значит что инвертировалось.простые рассуждения нам говорят что значение bij зависчит только собственного + соседних значений из А, причем по правилу XOR (заиспользую ^ для обозначения этой операции) :b11=a11 ^ a21 ^ a12 , b21=a21 ^a11 ^ a22 ^ a31,b22=a22 ^ a21 ^ a23 ^ a32 ^ a12...и тдгде если возьмем исходное поле и закодируем 1 ячейки которые стоят в неправильном положении (которые нужно инвертировать) а за 0 те которые стоят в правильном и данную матрицу назовем C и соотв. cij то получается bij = cijи тогда нам нужно найти множество решений для системы уравнений:с11=a11 ^ a21 ^ a12 , с21=a21 ^a11 ^ a22 ^ a31,с22=a22 ^ a21 ^ a23 ^ a32 ^ a12...как это решать аналитически - хуй знает, надо к математикам обращаться, мне в эту сторону впадлу копать. вероятно это будет логические выражения в ДНФ, если просто начать выражать одно из другогоно как минимум можно вычислить индукционно с перебором инвариантов уже по понятному принципу и известной формуле. и в целом возможное количество решений = 2^n PS: завтра мб напишу прогруммульку которая решает по этой моделе. напишу скорее всего функционально Изменено 2 апреля 2019 пользователем Just.Doit очень крутые котейкиКому-то пизды дал - нужно сделать скрин обязательно. (с) Solo Поделиться сообщением Ссылка на сообщение
JuJeu #1111 2 апреля 2019 (изменено) парни, пощадите с линейной алгеброй (^ бтв такие задачи полезно хуярить, если в мл метите, там без линейки делать не хуй ). Изменено 2 апреля 2019 пользователем JuJeu Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders. Поделиться сообщением Ссылка на сообщение
scarppy #1112 2 апреля 2019 вот дебилы, пишут какие-то цифры на 100 страниц, что б 3 рычага переключить - выйди переключи, мужик ты или кто........... лучшая цитата финта+жизненная Поделиться сообщением Ссылка на сообщение
AskMe- #1113 2 апреля 2019 (изменено) а вот решаема ли задача по переводу 100000000в111111111или000000000 я хз, хз что там брутфорсил аскми запустил пепелац с условием числа ходов не больше 10, через 120 итераций нарандомилось решение в 6 ходов:(большая буква показывает "текущий" ход, который привел к такому состоянию) v x x x x x x x x =========v v x v V v x v x =========v v v v x X x v v =========v x v x V v x x v =========v v v v X x x v v =========v v v v x v x x X =========v v v v v v v V v =========Best try: 6Total tries: 120 При том что 3й и 4й ход бесполезные (походили - вернули обратно), то само решение выходит вообще в 4 хода: v x xx x xx x x=========v v xv V vx v x=========v v vv x Xx v v=========v v vv x vx x X=========v v vv v vv V v или в один проход ты по-другому как то имел в виду? в этом решении по крайней мере ни один рычаг больше одного раза не дергается еще решение:v x xx x xx x x=========v x xx x vx v V=========v x xx v vv X x=========v v xv X xv v x=========v v vv v Vv v v=========Best try: 4Total tries: 344 а вот для переключения в 0 за 5 ходов: v x xx x xx x x=========v x xv x xV v x=========v x xv v xx X v=========v x vv x Vx x x=========v v Xv x xx x x=========X x xx x xx x x=========Best try: 5Total tries: 1087 Изменено 2 апреля 2019 пользователем AskMe- Лишь ощутив баттхерт до конца, мы обретаем свободу Поделиться сообщением Ссылка на сообщение
FeelYourDestiny #1114 2 апреля 2019 в тинькове промоакция какая то, в конце логическая задача - поле 3х3 с рубильниками (on/off), каждый рубильник переключает соседние и сам себя (соседство только по горизонтали и вертикали, диагональ не считается). нужно переключить все рубильники в одно положение не осилил, написал сниппет который рандомно переключает один рубильник и чекает готово или нет, захуярил в цикле пока все не переключилось зачем думоть над задачей, когда можно забрутфорсить?такое только 8х8 вроде было в квесте братья пилоты как же я в своих 7 лет горел с этого ебучего холодильника, я так и не смог его открыть, пока не приехал двоюродный брат и за 3 минуты сделал :fffuuu: :fffuuu: :fffuuu: пздц жиза я потом в более старшем возросте пытался пройти и тупо забрутфорсил, так и не понял до конца как это осознанно делать) Kant понравилось это Поделиться сообщением Ссылка на сообщение
choojoykin #1115 2 апреля 2019 в тинькове промоакция какая то, в конце логическая задача - поле 3х3 с рубильниками (on/off), каждый рубильник переключает соседние и сам себя (соседство только по горизонтали и вертикали, диагональ не считается). нужно переключить все рубильники в одно положение не осилил, написал сниппет который рандомно переключает один рубильник и чекает готово или нет, захуярил в цикле пока все не переключилось зачем думоть над задачей, когда можно забрутфорсить?это где у нас такое? ни мало ни много, а много и мало Поделиться сообщением Ссылка на сообщение
AskMe- #1116 2 апреля 2019 в тинькове промоакция какая то, в конце логическая задача - поле 3х3 с рубильниками (on/off), каждый рубильник переключает соседние и сам себя (соседство только по горизонтали и вертикали, диагональ не считается). нужно переключить все рубильники в одно положение не осилил, написал сниппет который рандомно переключает один рубильник и чекает готово или нет, захуярил в цикле пока все не переключилось зачем думоть над задачей, когда можно забрутфорсить?это где у нас такое? https://naslabo.project.tinkoff.ru/ Лишь ощутив баттхерт до конца, мы обретаем свободу Поделиться сообщением Ссылка на сообщение
Index #1117 2 апреля 2019 Я думал надо алгоритм придумать, а так если чисто переключить то просто брутфорс можно применить как ты, а потом по брутфорсу ходы воссоздать минимальныеТам ещё задача с парными карточками решается добавлением к img тегу класса Алсо, ох уж этот маркетинг через игру. И ведь лохи ведутся. Поделиться сообщением Ссылка на сообщение
Kant #1118 2 апреля 2019 брутфорс может никогда к оптимальному решению и не сойтись на больших объемах Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью. Поделиться сообщением Ссылка на сообщение
Index #1119 2 апреля 2019 Ну так а вручную такая головоломка тоже изи вроде как решается от какого-то угла идя. Поделиться сообщением Ссылка на сообщение
sonac #1120 2 апреля 2019 Вот сразу видно, аскми энтерпрайзный работяга, который пришёл решить задачу наиболее быстрым и оптимальным способом (с точки зрения бизнеса), а индекс небось из тех, кто свой мерджсорт пишет Поделиться сообщением Ссылка на сообщение