07.09.2018, 22:09
|
Новичок на форуме
|
|
Регистрация: 07.09.2018
Сообщений: 4
|
|
Посимвольный случайный вывод кириллицы
Друзья, изучаю js и пишу скрипт, но в ходе написания столкнулся с проблемой. Обшарил весь этот сайт и Гугл - конкретного решения нет. Задача: необходимо вывести случайный элемент из массива и повторить это тысячу раз, не прерывая строки. Я хочу сделать это по нажатию кнопки, чтобы не обновлять страницу для получения нового результата, но даётся с огромной сложностью понимание вывода информации к пользователю(return, result etc). Буду рад, если поможете объяснить, как добиться поставленной цели. Вот кусок кода, что мне удалось слепить на данный момент.
function randomInteger(min, max) {
var rand = min + Math.random() * (max + 1 - min);
rand = Math.floor(rand);
return rand; }
var alphabet = ["А", "Б", "В", "Г", "Д", "Е", "Ё", "Ж", "З", "И", "Й", "К", "Л", "М", "Н", "О", "П", "Р", "С", "Т", "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Ъ", "Ы", "Ь", "Э", "Ю", "Я", "а", "б", "в", "г", "д", "е", "ё", "ж", "з", "и", "й", "к", "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", "щ", "ъ", "ы", "ь", "э", "ю", "я", " ", " ", " ", " ", ",", "."];
var i = 0;
for (i; i<1000; i++)
{
document.write();
}
|
|
07.09.2018, 22:17
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,123
|
|
|
|
07.09.2018, 22:29
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,123
|
|
бредогенератор текста
Paramonov,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>
<body>
<input type="button" id="button" value="Кнопка" />
<div id="text"></div>
<script>
var alphabet = ["А", "Б", "В", "Г", "Д", "Е", "Ё", "Ж", "З", "И", "Й", "К", "Л", "М", "Н", "О", "П", "Р", "С", "Т", "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Ъ", "Ы", "Ь", "Э", "Ю", "Я", "а", "б", "в", "г", "д", "е", "ё", "ж", "з", "и", "й", "к", "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", "щ", "ъ", "ы", "ь", "э", "ю", "я", " ", " ", " ", " ", ",", "."];
function createStr(num, arr)
{
var str = '';
for (var i = 0; i < num; i++) {
var a = Math.floor(Math.random() * arr.length);
str += arr[a]
}
return str
}
button.onclick = function() {
text.innerHTML = createStr(1000, alphabet)
};
</script>
</body>
</html>
|
|
07.09.2018, 23:49
|
|
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
<input type="button" id="button" value="Кнопка" />
<div id="text"></div>
<script>
var rnd =(min, max)=> Math.floor(Math.random() * (max - min)) + min;
var arr = [' ',',','.'];
button.onclick = function() {
var str = '', i = 1000;
while (i--) {
var num = rnd(1040, 1107);
if(num<=1103) str+= String.fromCharCode(num);
else str+= arr[num-1104];
}
text.innerHTML = str;
};
</script>
Последний раз редактировалось j0hnik, 07.09.2018 в 23:55.
|
|
07.09.2018, 23:58
|
|
Профессор
|
|
Регистрация: 07.03.2011
Сообщений: 1,138
|
|
Недавно тоже столкнулся с похожей задачей нужна была рандомная строка для запроса multipart/form-data
<!DOCTYPE html><html><head>
<meta charset="utf-8"></head>
<body>
<input type="button" id="but" value="Кнопка" />
<div id="textout"></div>
<script>
var createStr = (p,str)=> { // Функция возвращает "p" случайно выбранных символов из строки "str"
let r = '';
while(--p) {
r += str[ Math.round ( Math.random()*(str.length-1)) ]
}
return r};
but.onclick = function() {
textout.innerHTML = createStr(1000, "Эй, жлоб! Где туз? Прячь юных съёмщиц в шкаф.")
};
</script>
|
|
08.09.2018, 07:17
|
Новичок на форуме
|
|
Регистрация: 07.09.2018
Сообщений: 4
|
|
Спасибо большое!
|
|
09.09.2018, 09:53
|
Новичок на форуме
|
|
Регистрация: 07.09.2018
Сообщений: 4
|
|
Я продолжаю работать над этим алгоритмом и мне нужно было ловить количество итераций, за которое алгоритм выведет нужное значение. С двумя символами работает прекрасно, но уже на трёх зависает наглухо. И мне бы понять, оно насовсем или мощностей каких не хватает, датчика прогресса то нет. Самое плохое, что я хотел сделать проверку на тысячу символов, а тут три зависают. Есть мысли у вас, как это обойти?
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>
<body>
<input type="button" id="button" value="Значение" />
<div id="text"></div>
<div id=iterations></div>
<script>
var alphabet = ["А", "Б", "В", "Г", "Д", "Е", "Ё", "Ж", "З", "И", "Й", "К", "Л", "М", "Н", "О", "П", "Р", "С", "Т", "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Ъ", "Ы", "Ь", "Э", "Ю", "Я", "а", "б", "в", "г", "д", "е", "ё", "ж", "з", "и", "й", "к", "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", "щ", "ъ", "ы", "ь", "э", "ю", "я", " ", " ", " ", " ", " ", " ", " ", " ", ",", "."];
function createStr(num, arr)
{
var str = '';
for (var i = 0; i < num; i++) {
var a = Math.floor(Math.random() * arr.length);
str += arr[a]
}
return str
}
button.onclick = function() {
var iter1 = 0;
text.innerHTML = 'f';
var elem = iterations.innerHTML = iter1;
while (text.innerHTML != 'Рай') {
iter1++;
text.innerHTML = createStr(3, alphabet);
var elem = iterations.innerHTML = iter1;
}
};
</script>
</body>
</html>
|
|
09.09.2018, 10:06
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,123
|
|
Paramonov,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>
<body>
<input type="button" id="button" value="Значение" />
<div id="text"></div>
<div id=iterations></div>
<script>
var alphabet = ["А", "Б", "В", "Г", "Д", "Е", "Ё", "Ж", "З", "И", "Й", "К", "Л", "М", "Н", "О", "П", "Р", "С", "Т", "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Ъ", "Ы", "Ь", "Э", "Ю", "Я", "а", "б", "в", "г", "д", "е", "ё", "ж", "з", "и", "й", "к", "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", "щ", "ъ", "ы", "ь", "э", "ю", "я", " ", " ", " ", " ", " ", " ", " ", " ", ",", "."];
function createStr(num, arr)
{
var str = '';
for (var i = 0; i < num; i++) {
var a = Math.floor(Math.random() * arr.length);
str += arr[a]
}
return str
}
button.onclick = function() {
var iter1 = 0, str = '';
while (str != 'Рай') {
iter1++;
str = createStr(3, alphabet);
}
text.innerHTML = str;
iterations.innerHTML = iter1;
};
</script>
</body>
</html>
|
|
09.09.2018, 10:30
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,123
|
|
Сообщение от Paramonov
|
я хотел сделать проверку на тысячу символов
|
76 в степени 1000 !!! и это если повезёт у вас есть сотня другая свободных мощностей на фотонных процессорах?
|
|
09.09.2018, 10:47
|
Новичок на форуме
|
|
Регистрация: 07.09.2018
Сообщений: 4
|
|
Сообщение от рони
|
76 в степени 1000 !!! и это если повезёт у вас есть сотня другая свободных мощностей на фотонных процессорах?
|
Большое вам спасибо за помощь. Эх, на четырех уже зависает. Ладно, не судьба, может быть лет через 20. В общем-то, я хотел сделать имитацию из одного выражения: "Если за печатную машинку посадить обезьяну, то когда-нибудь она напечатает "Войну и мир"." Мне стало интересно, за сколько итераций в среднем обезьяна напечатает читаемый текст хотя бы в 1000 символов. Ещё раз спасибо.
|
|
|
|