07.08.2018, 07:53
|
|
Профессор
|
|
Регистрация: 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));
|
|
07.08.2018, 09:14
|
|
Профессор
|
|
Регистрация: 25.10.2016
Сообщений: 1,012
|
|
j0hnik,
Если в массиве поменять 7 местами, например, с 5 или 8, неправильно работает. Надо для любого массива и любого k
|
|
07.08.2018, 09:46
|
|
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
Alexandroppolus,
что-то из этой же серии только с большей вложенностью? символов слишком мало чтобы еще что-то конструировать
|
|
07.08.2018, 10:34
|
Профессор
|
|
Регистрация: 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.
|
|
07.08.2018, 10:37
|
|
Профессор
|
|
Регистрация: 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.
|
|
07.08.2018, 11:19
|
Профессор
|
|
Регистрация: 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%.
|
|
07.08.2018, 11:37
|
|
Профессор
|
|
Регистрация: 25.10.2016
Сообщений: 1,012
|
|
Сообщение от j0hnik
|
символов слишком мало чтобы еще что-то конструировать
|
да, вот это немного смущает. думаю, 5-6 было бы как-то разнообразнее...
|
|
07.08.2018, 12:14
|
Профессор
|
|
Регистрация: 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.
|
|
07.08.2018, 12:18
|
|
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
Сообщение от Dilettante_Pro
|
с переменным первенством между ними.
|
больше итераций и проблема исчезнет.
|
|
07.08.2018, 12:26
|
|
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
Dilettante_Pro,
838 это слишком для кодварс, такая городьба, видимо решение немного другое.
|
|
|
|