Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #81 (permalink)  
Старый 06.08.2018, 02:46
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Alexandroppolus,
видел и ваше решение, сколько времени ушло?
Ответить с цитированием
  #82 (permalink)  
Старый 06.08.2018, 08:39
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

j0hnik,
Да не помню уже. Я на прогулке вспомнил задачу, придумал решение. Что любопытно, как-то сразу возникла мысль, что тут n*ln должно быть, хотя от n^2 никак не получалось уйти. Но я с расчетом на возможный упорядоченный входной массив делал, потому не через дерево, его балансировать бы пришлось.

Кстати, хочу свою кату запилить, есть одна забавная идея )
Ответить с цитированием
  #83 (permalink)  
Старый 06.08.2018, 14:18
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от Alexandroppolus
Кстати, хочу свою кату запилить, есть одна забавная идея
Слушаю
Ответить с цитированием
  #84 (permalink)  
Старый 06.08.2018, 16:42
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

j0hnik,
даны переменные:
a = randomShuffle([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) - массив из 10 разных чисел 0..9, в неизвестном порядке
k - неизвестное целое число в пределах 0..9

написать выражение, которое находит позицию числа k в массиве a, используя как можно меньше различных символов (минимизируем не длину выражения, а именно разные символы, т.е. в строке "aaaaabbbbbb" только 2 разных символа)

a.indexOf(k) - решение, но тут разных символов 12, а можно меньше


Ответ по замыслу должен быть в виде строки, например, "a.indexOf(k)", которую можно будет подставить в Function('a', 'k', 'return ' + str) и получить функцию.

Последний раз редактировалось Alexandroppolus, 06.08.2018 в 16:46.
Ответить с цитированием
  #85 (permalink)  
Старый 07.08.2018, 00:19
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Alexandroppolus,
и во сколько разных символов надо уложиться?
Ответить с цитированием
  #86 (permalink)  
Старый 07.08.2018, 00:38
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

j0hnik,

всего 4
Ответить с цитированием
  #87 (permalink)  
Старый 07.08.2018, 00:45
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Alexandroppolus,
4 это весь внутренний код функции?
function fn(k){
// 4
}


пустые символы считаются?
Ответить с цитированием
  #88 (permalink)  
Старый 07.08.2018, 00:58
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

j0hnik,
Нет, 4 - это только в самом выражении.

function f(a, k) {
  return expr;
}


Учитывается только то что в этом expr - между пробелом и ;
Ответить с цитированием
  #89 (permalink)  
Старый 07.08.2018, 02:26
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

имя функции в один символ, полагаю не просто так?

Последний раз редактировалось j0hnik, 07.08.2018 в 02:29.
Ответить с цитированием
  #90 (permalink)  
Старый 07.08.2018, 02:59
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

j0hnik,
Имя функции, в общем, значения не имеет. Фиксированы только имена переменных a и k - массив и искомое число. Состав и длина массива тоже известны, но порядок элементов может быть любой.

Попробую написать более формально. Требуется только выражение в виде строки: var str = ...

Проверяется тип (typeof str === 'string') и символы (new Set(str).size <= 4)

Потом будет создана функция
var indexOf = new Function('a', 'k', 'return ' + str);

и проверена для разных данных.

Например: var str = 'a.indexOf(k)'; - работает правильно, но не проходит по ограничению.
var str = '1'; - вписывается в лимит, но иногда работает неверно.

Последний раз редактировалось Alexandroppolus, 07.08.2018 в 03:05.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Тестовое задание Yandex xShift Общие вопросы Javascript 22 17.02.2018 21:53
Задание с SIP heeel Firefox/Mozilla 0 12.06.2017 01:12
Интересное задание "Поединок" помогите решить Anton27 Общие вопросы Javascript 1 23.05.2017 22:24
Тестовое задание. Дайте идею. FINoM Оффтопик 14 28.03.2011 10:09
Помогите сделать тестовое задание начального уровня по js makregistr Работа 1 16.12.2010 14:26