Сгенерировать 2 последовательности и узнать сколько в них одинаковых элементов
Сгенерировать последовательность с помощью датчика случайных чисел и обработать задание:сколько соответствующих элементов двух последовательностей с одинаковым количеством элементов совпадают. Массивы не используются.
Помогите, пожалуйста, знаю как сравниваются числа, как считается количество элементов в последовательности, а вот как сравнить соответствующие элементы и узнать сколько их, что-то не могу понять. Заранее спасибо! |
Будьте любезны, Ваш код.
|
Ирина Владимировна,
1 способ.Генерировать 2 последовательности и сравнивать последние добавленные элементы на равенство. 2.Превратить заранее сгенерированные последовательности в массивы с помощью str.split('') и затем последовательно сравнить элементы этих массивов. 3.Взять нужный элемент последовательности для сравнения с помощью str.substr(start, 1) |
nerv_,
var n=prompt("Введите количество чисел в последовательности:"," "); n=n*1; var a; var b; var i=1; var j=1; for(;i<=n;i++) {a=Math.round(-100+201*Math.random()); document.write(a); if (i<n) document.write(";");} document.write("<br>"); for(;j<=n;j++) {b=Math.round(-100+201*Math.random()); document.write(b); if (j<n) document.write(";");} генерирует 2 последовательности с одинаковым количеством элементов, как найти элементы которые совпадают не знаю. |
рони,
Спасибо, попробую, надеюсь получится. |
Ирина Владимировна,
Вариант 1 ... <!DOCTYPE html> <html> <head> <title></title> <style type="text/css"> b{ color: #FF0000; } </style> </head> <body> <script type="text/javascript"> function f() { var n=+prompt("Введите количество чисел в последовательности:","50"); for (var c = "", d = "", e = 0, g = 0; g < n; g++) var a = Math.round(9 * Math.random()), b = Math.round(9 * Math.random()), c = c + (a == b ? (e++, "<b>" + a + "</b>") : a), d = d + (a == b ? "<b>" + b + "</b>" : b); return c+"<br />"+d+"<br />"+e }; document.write(f()) </script> </body> </html> |
Генерирует два массива одинаков длины, заполненные радномными элементами.
Возвращается количество совпавших пар: var compare_random_array = function(i) { var random = Math.random(), count = 0; (random * i).toFixed(i).slice(2).split('').every(function(i, j, array) { i == array[j]*random|0 && count++; return true; }); return count; } alert(compare_random_array(10)); |
Цитата:
вроде только один (random * i).toFixed(i).slice(2).split('') и что будет если вызвать не compare_random_array(10) а например compare_random_array(30) |
Цитата:
var arrays = []; var compare_random_array = function(i) { var random = Math.random(), count = 0; (random * i).toFixed(i).slice(2).split('').every(function(element, i, array) { var array2 = random * i|0; arrays.push(element, ':', array2, '\n'); element == array2 && count++; return true; }); return count; } var count = compare_random_array(12); alert(arrays.join('') + '\nсовпадений пар:' + count); PS: писался пример для забавы, поэтому косяки править лень. |
спасибо,
теперь понятно, что вы имели в виду под вторым массивом заполненным радномными элементами |
Часовой пояс GMT +3, время: 11:35. |