Javascript.RU

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

Aetae,
А если ему потом понадобится то же самое из 6 или более символов уже пирамида упавшая на бок получится.

чем жуток код рони?
Ответить с цитированием
  #12 (permalink)  
Старый 02.05.2018, 16:43
Интересующийся
Отправить личное сообщение для VSEM-DOBRA Посмотреть профиль Найти все сообщения от VSEM-DOBRA
 
Регистрация: 01.10.2017
Сообщений: 20

рони,
Спасибо работает.

Aetae,
мне не для препода, хучу как раз сделать что-то типа брутфорса строки.

j0hnik,
Тоже думал про циклы но не получилось
Ответить с цитированием
  #13 (permalink)  
Старый 02.05.2018, 16:56
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

VSEM-DOBRA,
все проще простого

var arr = ['A','B','C','D','E'], a =[], x=[];

for(var k = 0; k<arr.length; k++){
	a[0] = arr[k];
	for(var l = 0; l<arr.length; l++){
		a[1] = arr[l];
		for(var m = 0; m<arr.length; m++){
			a[2] = arr[m];
			for(var n = 0; n<arr.length; n++){
				a[3] = arr[n];
				x.push(a.join(''));
			}
		}
	}
}
console.log(x);
Ответить с цитированием
  #14 (permalink)  
Старый 02.05.2018, 17:02
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

VSEM-DOBRA,
брутфорс ваш будет быстрей работать не со строками, а с массивом.
и лучше не пушить, а проверять на лету и успешно забывать если не тот.

1) берем вашу строку делаем из нее массив,
2) генерируем с помощью цикла новый массив сверяем его с текущем, если не подходит, успешно забываем. если подходит останавливаем цикл.
Ответить с цитированием
  #15 (permalink)  
Старый 02.05.2018, 17:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,133

шифровка из центра ...
<script>
var arr = ['A','B','C','D','E'];
function fn(e, k) {
    for (var f = [], c = e.length, g = 0;; g++) {
        var b = g.toString(c),
            a = k - b.length;
        if (0 > a) {
            break;
        }
        0 < a && (b = Array(++a).join("0") + b);
        for (var h = "", d = 0; d < k; d++) {
            a = parseInt(b[d], c), h += e[a];
        }
        f.push(h);
    }
    return f;
};
document.write(fn(arr, 4).join('<br>'));
  </script>

Последний раз редактировалось рони, 02.05.2018 в 17:11.
Ответить с цитированием
  #16 (permalink)  
Старый 02.05.2018, 17:47
Интересующийся
Отправить личное сообщение для VSEM-DOBRA Посмотреть профиль Найти все сообщения от VSEM-DOBRA
 
Регистрация: 01.10.2017
Сообщений: 20

рони,
Спасибо
j0hnik,
Да, вы правы, буду над этим работать.
Ответить с цитированием
  #17 (permalink)  
Старый 02.05.2018, 18:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,133


<script>
var arr = ['A','B','C','D','E'];
function fn(e, k) {
    for (var f = [], c = e.length, g = 0;; g++) {
        var b = g.toString(c);
        if (b.length > k) break;
        b = [...b.padStart(k,"0")].reduce((a,d) => (d = parseInt(d, c), a + e[d]),"");
        f.push(b);
    }
    return f;
};
document.write(fn(arr, 4).join('<br>'));
  </script>
Ответить с цитированием
  #18 (permalink)  
Старый 02.05.2018, 18:21
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

<script>
var arr = ['A','B','C','D','E'];
var x = 0;
function fn(e, k) {
    for (var f = [], c = e.length, g = 0;; g++) {
        var b = g.toString(c);
        if (b.length > k) break;
        b = [...b.padStart(k,"0")].reduce((a,d) => {
        	x++;
        	return (d = parseInt(d, c), a + e[d]);
        },"");
        f.push(b);
    }
    console.log(x);
    return f;

}
document.write(fn(arr, 4).join('<br>'));


</script>


Рони, не многовато ли итераций??
как то можно ведь оптимизировать?

Последний раз редактировалось j0hnik, 02.05.2018 в 18:32.
Ответить с цитированием
  #19 (permalink)  
Старый 02.05.2018, 18:30
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,133

j0hnik,
один цикл, куда ещё оптимальней?
как преобразовать строку "0000" в "AAAA" можешь предложить своё решение, знаю только replace, не уверен что это оптимально.
Ответить с цитированием
  #20 (permalink)  
Старый 02.05.2018, 18:33
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

рони,
да цикл то один, а циклические методы не считаете?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как обновить данные счетчика количества символов в input prog77 jQuery 4 08.07.2017 16:04
Контроль количества вводимых в форму символов y0uix Events/DOM/Window 4 22.10.2013 19:12
Можно ли узнать полный путь изображения в jquery pautinaweb jQuery 1 30.01.2013 23:39
Ограничить количество символов в textarea iNfantry jQuery 2 14.05.2012 11:35
Редактор TinyMCE не отправляет много русских символов cobria2 Общие вопросы Javascript 0 09.05.2011 00:46