Игорь
перемножить не умножая это да
Bogdan
:)
Bogdan
Логика была, что если сумма чисел больше, то и произведение должно быть больше
Игорь
9+3=12 , 9*3=27 6+6=12 , 6*6=36
Bogdan
Изначально :) Потом я стал сравнивать отдельно числа из массива, перед этим, естественно, их сортируя. [1, 1, 2, 3...] [2, 3, 4...] (1 - 2) + (1 - 3) + (2 - 4).. Ну это я думал, что так делаю :) Оказалось, такого не происходило
Bogdan
При этом, почему-то отрабатывало оно тогда правильно :)
Игорь
Из двух массивов как у тебя можно действительно отсортировать и вычитать одинаковые числа и там и там и сравнить оставшееся ну как 5*7 / 5*8 = 7/8
Игорь
но я ещё вчера предлагал другой алгоритм и по-моему вполне логичный
Игорь
у тебя есть ряд 356, следующий 566
Игорь
во втором ряду мы убрали из произведения 3, но добавили 6
Игорь
6/3 = 2
Игорь
значит второй ряд в 2 раза больше первого
Игорь
в третьем ряду стало 566 -> 661
Игорь
убрали 5, добавили 1
Игорь
значит он 1/5 от второго
Игорь
1/5 * 2x = 2/5 * x
Игорь
то есть первый у нас x, второй 2x, третий 2/5 x (или 0.4x)
Игорь
а текущий максимум 2x во втором ряду
Игорь
в конце прохода массива 1 раз считаем произведение этого ряда и всё
Игорь
никаких сортировок
Игорь
проверим даже. 3*5*6=90 (x) 5*6*6 = 180 (2x) 6*6*1 = 36 (0.4x)
Игорь
При этом, почему-то отрабатывало оно тогда правильно :)
Вообще похоже, что обычно так и есть (чем больше сумма, тем больше произведение), но не всегда
Bogdan
Ну.. такое. Типа, в первом массиве первое число 1, то дальше могут быть ещё единицы, а во втором начало с 2, то уже сумма будет больше
Maksim
Изначально :) Потом я стал сравнивать отдельно числа из массива, перед этим, естественно, их сортируя. [1, 1, 2, 3...] [2, 3, 4...] (1 - 2) + (1 - 3) + (2 - 4).. Ну это я думал, что так делаю :) Оказалось, такого не происходило
после сортировки, очевидно что произведение будет больше в том массиве у которого первое число в той же позиции будет больше например [3,5] и [3,6] 1. 3 === 3 пропускаем 2. 5 < 6, произведение из второго массива будет больше чем из первого
Славик
3,5,100 3,6,7
Maksim
[9,1,1] и [6,4,1]
ну тут не сортированы, но я наебался все равно похоже )
Bogdan
шо це такэ factor = [currentSort, maxSort].reduce( (a, b) => a[0] - b[0] );
В общем. вместо всего того написал: if (current[amount - 1] > max[0]) {max = current} Вроде отработало :) Так ты хотел? :)
Bogdan
Не, не отработало :)
Игорь
Славик
min, max
Bogdan
а какие ограничения для чисел?
В плане? Длина набора?
Игорь
а какие ограничения для чисел?
это цифры, поэтому 0-9
Bogdan
min, max
вот задача https://projecteuler.net/problem=8
Славик
ну так а почему перемножать нельзя?
Славик
13 цифр выдадут очень большое число?
Bogdan
ну так а почему перемножать нельзя?
Ну аки складывать должно быть дешевле :) Скажем. тебе нужно будет не 13, а 100 чисел
Славик
Maksim
ну так а почему перемножать нельзя?
суть в том, можно ли найти способ дешевле узнать что произведение цифр одного числа больше чем другого чем перемножение этих самых цифр
Славик
ну представить как дробь
Славик
в которой ты сокращаешь числа
Bogdan
у тебя есть ряд 356, следующий 566
max = [3, 5, 6]; current = [5, 6, 6]; 3 < 6 => current > max => max = current; max = [5, 6, 6]; current = [6, 6, 1]; 5 > 1 => current < max; max = [5, 6, 6]; current = [6, 1, 9]; 5 < 9 => current > max; max = current; 5 * 6 * 6 = 180 6 * 1 * 9 = 54
Bogdan
ну представить как дробь
А вот тут поподробнее :) Что с чем сокращать
Славик
числитель с знаменателем
Bogdan
max = [3, 5, 6]; current = [5, 6, 6]; 3 / 5, 5 / 6, 6 / 6 ?
Славик
10 цифр, но 0 можно отработать изи, значит 9 цифр
Славик
сначала заносишь в массив цифры первого числа, их количество то есть, потом со второго числа одинаковые цифры минусуешь, оставшееся перемножаешь и сравниваешь
Bogdan
сначала заносишь в массив цифры первого числа, их количество то есть, потом со второго числа одинаковые цифры минусуешь, оставшееся перемножаешь и сравниваешь
В общем... по сути. можно таки просто сравнить на большее, после сортировки? max = [1, 2, 3, 4, 5]; current = [1, 2, 3, 4, 6]; // amount - заданная длина массива for (let i = 0; i < amount; i++) { if (current[i] > max[i]) { max = current; break; }
Славик
2, 3, 9 2, 4, 6
Maksim
умные люди подсказали, что большая сумма логарифмов цифр одного числа соответствует большему произведению цифр этого числа
Maksim
не проверял
Игорь
осталось посчитать сумму логарифмов, ведь это легче, чем найти произведение))
Славик
а логарифмы разве простая опреация?
Maksim
а логарифмы разве простая опреация?
там всего 9 цифр же, логарифмы можно по таблице мапить
Славик
так комбинации же
Maksim
так комбинации же
не важно, там же сумма логарифмов
Maksim
может вечером заимплеменчу, сейчас нет времени
Alex
Может кто нибудь помочь написать лучшим образом ?
Alex
Владимир
Может кто нибудь помочь написать лучшим образом ?
Не самый читаемый вариант, но чуть короче if (!(alredyLiked ^ isLiked)) { likesCount += 1; console.log('dispatch +1'); } else { likesCount -= 1; console.log('dispatch -1'); }
Alex
щас попробую
Alex
энивей спасибо
Владимир
Хотя вот то же самое if (alredyLiked === isLiked) { likesCount += 1; console.log('dispatch +1'); } else { likesCount -= 1; console.log('dispatch -1'); }
M
народ кто может помочь в написание кое чего
M
Offer a data structure to represent a binary tree in javascript Given such a tree, a plan is written that passes over all branches and returns the length of the longest branch
M
вот такая вот тема
Игорь
Offer a data structure to represent a binary tree in javascript Given such a tree, a plan is written that passes over all branches and returns the length of the longest branch
Написать двоичное дерево и алгоритм поиска самой длинной ветви.
Валентин
Посмотри на codepen какие нибудь transitions
Так далеко и надолго меня никто ещё не посылал.)))
Alexander
Господа, друзья программисты. Я поставил автодополнение слов (при вводе данных) через функцию написанную на чистом Js, но столкнулся с проблемой, что функция дополняет одно слово, и дальше не работает. Что мне можно сделать, если функция просто вызывается при подгрузуке страницы? Возможно как-то поставить исполнение функции при вводе новых данных в одном поле?
Kirill
onChange?
Alexander
А onChange разве работает в одном теге как и onclic?
Alexander
Нет, всё равно не работает, как я понял, что для срабатывания автозаполнения курсор должен быть в начале строки. Может кто знает, как поставить такое условие? Я бы попробовал его убрать
Павел 💻
Всем привет, посоветуйте пожалуйста какой нибудь пакет для авторизации пользователей через gmail или facebook. только не passport.js , что нибудь не такое грамоздкое
Anonymous
Ребят, привет всем! нужно написать мини скрипт который будет заполнять одно поле по заданному параметру и выводить картинку капчи в терминале чтобы можно было быстро ее заполнить ручками и отправить запрос. Срок - сутки, если справитесь - $300 за скрипт
Славик
ого
Славик
где подвох?