Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.09.2018, 22:09
Новичок на форуме
Отправить личное сообщение для Paramonov Посмотреть профиль Найти все сообщения от Paramonov
 
Регистрация: 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();
}
Ответить с цитированием
  #2 (permalink)  
Старый 07.09.2018, 22:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

Paramonov,
https://learn.javascript.ru/modifying-document
https://learn.javascript.ru/introduction-browser-events
Ответить с цитированием
  #3 (permalink)  
Старый 07.09.2018, 22:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

бредогенератор текста
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>
Ответить с цитированием
  #4 (permalink)  
Старый 07.09.2018, 23:49
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 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.
Ответить с цитированием
  #5 (permalink)  
Старый 07.09.2018, 23:58
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,134

Недавно тоже столкнулся с похожей задачей нужна была рандомная строка для запроса 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>
Ответить с цитированием
  #6 (permalink)  
Старый 08.09.2018, 07:17
Новичок на форуме
Отправить личное сообщение для Paramonov Посмотреть профиль Найти все сообщения от Paramonov
 
Регистрация: 07.09.2018
Сообщений: 4

Спасибо большое!
Ответить с цитированием
  #7 (permalink)  
Старый 09.09.2018, 09:53
Новичок на форуме
Отправить личное сообщение для Paramonov Посмотреть профиль Найти все сообщения от Paramonov
 
Регистрация: 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>
Ответить с цитированием
  #8 (permalink)  
Старый 09.09.2018, 10:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

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>
Ответить с цитированием
  #9 (permalink)  
Старый 09.09.2018, 10:30
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

Сообщение от Paramonov
я хотел сделать проверку на тысячу символов
76 в степени 1000 !!! и это если повезёт у вас есть сотня другая свободных мощностей на фотонных процессорах?
Ответить с цитированием
  #10 (permalink)  
Старый 09.09.2018, 10:47
Новичок на форуме
Отправить личное сообщение для Paramonov Посмотреть профиль Найти все сообщения от Paramonov
 
Регистрация: 07.09.2018
Сообщений: 4

Сообщение от рони Посмотреть сообщение
76 в степени 1000 !!! и это если повезёт у вас есть сотня другая свободных мощностей на фотонных процессорах?
Большое вам спасибо за помощь. Эх, на четырех уже зависает. Ладно, не судьба, может быть лет через 20. В общем-то, я хотел сделать имитацию из одного выражения: "Если за печатную машинку посадить обезьяну, то когда-нибудь она напечатает "Войну и мир"." Мне стало интересно, за сколько итераций в среднем обезьяна напечатает читаемый текст хотя бы в 1000 символов. Ещё раз спасибо.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод из таблицы в БД c помощью AJAX smart-create AJAX и COMET 4 29.12.2016 20:44
Вывод переменных MasterHrust Javascript под браузер 4 03.08.2011 15:41
Вывод данных в Друпал 6 из MySQL, небольшая работа torquemada Работа 1 22.05.2011 17:05
вывод картинки и vrml mister_maxim Events/DOM/Window 16 12.01.2010 17:40
Пошаговый вывод скрипта для IE всех версий. Zidky Элементы интерфейса 10 17.06.2009 18:27