Javascript.RU

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

var a = [6,3,1,4,2,7,5,0,9,8], k = 7;

function f(a, k) {
  return a[a[a[k]]];
}

console.log(f(a,k));
Ответить с цитированием
  #92 (permalink)  
Старый 07.08.2018, 09:14
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

j0hnik,
Если в массиве поменять 7 местами, например, с 5 или 8, неправильно работает. Надо для любого массива и любого k
Ответить с цитированием
  #93 (permalink)  
Старый 07.08.2018, 09:46
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Alexandroppolus,
что-то из этой же серии только с большей вложенностью? символов слишком мало чтобы еще что-то конструировать
Ответить с цитированием
  #94 (permalink)  
Старый 07.08.2018, 10:34
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Сообщение от j0hnik
с большей вложенностью?
Попробовал...
var a = [6,3,1,4,2,7,5,0,9,8], k = 7;

function f(a, k) {
  return a[a[a[a[a[a[a[a[a[a[a[k]]]]]]]]]]];
}

alert(f(a,k));


var a = [6,3,1,4,2,7,5,0,9,8], k = 7;

function f(a, k) {
  return a[a[a[a[a[a[a[a[a[a[a[k]]]]]]]]]]];
}

alert(f(a,k));


var a = [6,3,1,4,2,7,8,0,9,5], k = 4;

function f(a, k) {
  return a[a[a[a[a[a[a[a[a[a[a[k]]]]]]]]]]];
}

alert(f(a,k));


var a = [6,3,1,4,2,7,5,0,9,8], k = 9;

function f(a, k) {
  return a[a[a[a[a[a[a[a[a[a[a[k]]]]]]]]]]];
}

alert(f(a,k));

Последний раз редактировалось Dilettante_Pro, 07.08.2018 в 10:36.
Ответить с цитированием
  #95 (permalink)  
Старый 07.08.2018, 10:37
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Dilettante_Pro,
var a = [0,1,2,3,4,5,6,7,8,9];
a.sort(_=>Math.random() - 0.5);
function f(a, k) {
  return a[a[a[a[a[a[a[a[a[a[a[k]]]]]]]]]]]+'-'+a.indexOf(k);
}
var i = 10;
while(i--) console.log(f(a,i));


вот вам тестер!

Последний раз редактировалось j0hnik, 07.08.2018 в 10:43.
Ответить с цитированием
  #96 (permalink)  
Старый 07.08.2018, 11:19
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

j0hnik,
Да, на некоторых данных врет...
var n = 0;
for(var j = 0; j< 100; j++) {
var a = [0,1,2,3,4,5,6,7,8,9];
a.sort(_=>Math.random() - 0.5);
function f(a, k) {
  return a[a[a[a[a[a[a[a[a[a[a[k]]]]]]]]]]] == a.indexOf(k);
}
console.log(a);
var i = 10;
while(i--) n += f(a,i)?1:0;
}
console.log(n/10);

Но процент правильных ответов на удивление высок - 70-80%.
Ответить с цитированием
  #97 (permalink)  
Старый 07.08.2018, 11:37
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

Сообщение от j0hnik
символов слишком мало чтобы еще что-то конструировать
да, вот это немного смущает. думаю, 5-6 было бы как-то разнообразнее...
Ответить с цитированием
  #98 (permalink)  
Старый 07.08.2018, 12:14
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

var result = [];
var max = 0, maxm = 0;
var str = "a[k]";
for(var m = 0;m < 1000;m++) {
   var n = 0;
    str = "a[" + str + "]";
   var f = new Function('a', 'k', 'return ' + str + ' == a.indexOf(k);');
   for(var j = 0; j< 100; j++) {
      var a = [0,1,2,3,4,5,6,7,8,9];
      a.sort(_=>Math.random() - 0.5);

      var i = 10;
      while(i--) n += f(a,i)?1:0;
   }
   if(max< n) { max = n; maxm = m +1;}
}
console.log(max/10, maxm);

Больше 90% правильных ответов дают уровни вложенности 118, 238, 358, 478 - с переменным первенством между ними.
97.3%, 98.2% - 838
Более высоких уровней достичь не удалось - переполняется call stack

Последний раз редактировалось Dilettante_Pro, 07.08.2018 в 12:35.
Ответить с цитированием
  #99 (permalink)  
Старый 07.08.2018, 12:18
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от Dilettante_Pro
с переменным первенством между ними.
больше итераций и проблема исчезнет.
Ответить с цитированием
  #100 (permalink)  
Старый 07.08.2018, 12:26
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Dilettante_Pro,
838 это слишком для кодварс, такая городьба, видимо решение немного другое.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Тестовое задание 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