Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.03.2012, 18:08
Новичок на форуме
Отправить личное сообщение для Ирина Владимировна Посмотреть профиль Найти все сообщения от Ирина Владимировна
 
Регистрация: 17.03.2012
Сообщений: 5

Сгенерировать 2 последовательности и узнать сколько в них одинаковых элементов
Сгенерировать последовательность с помощью датчика случайных чисел и обработать задание:сколько соответствующих элементов двух последовательностей с одинаковым количеством элементов совпадают. Массивы не используются.

Помогите, пожалуйста, знаю как сравниваются числа, как считается количество элементов в последовательности, а вот как сравнить соответствующие элементы и узнать сколько их, что-то не могу понять.

Заранее спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 17.03.2012, 18:20
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Будьте любезны, Ваш код.
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #3 (permalink)  
Старый 18.03.2012, 01:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 29,559

Ирина Владимировна,
1 способ.Генерировать 2 последовательности и сравнивать последние добавленные элементы на равенство.
2.Превратить заранее сгенерированные последовательности в массивы с помощью str.split('') и затем последовательно сравнить элементы этих массивов.
3.Взять нужный элемент последовательности для сравнения с помощью str.substr(start, 1)
Ответить с цитированием
  #4 (permalink)  
Старый 21.03.2012, 16:16
Новичок на форуме
Отправить личное сообщение для Ирина Владимировна Посмотреть профиль Найти все сообщения от Ирина Владимировна
 
Регистрация: 17.03.2012
Сообщений: 5

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 последовательности с одинаковым количеством элементов, как найти элементы которые совпадают не знаю.
Ответить с цитированием
  #5 (permalink)  
Старый 21.03.2012, 16:17
Новичок на форуме
Отправить личное сообщение для Ирина Владимировна Посмотреть профиль Найти все сообщения от Ирина Владимировна
 
Регистрация: 17.03.2012
Сообщений: 5

рони,
Спасибо, попробую, надеюсь получится.
Ответить с цитированием
  #6 (permalink)  
Старый 21.03.2012, 18:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 29,559

Ирина Владимировна,
Вариант 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>
Ответить с цитированием
  #7 (permalink)  
Старый 22.03.2012, 08:14
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Генерирует два массива одинаков длины, заполненные радномными элементами.
Возвращается количество совпавших пар:

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));
Ответить с цитированием
  #8 (permalink)  
Старый 22.03.2012, 09:00
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

Сообщение от monolithed
Генерирует два массива одинаков длины, заполненные радномными элементами.
а где два массива ?
вроде только один
(random * i).toFixed(i).slice(2).split('')

и что будет если вызвать не
compare_random_array(10)
а например
compare_random_array(30)
Ответить с цитированием
  #9 (permalink)  
Старый 22.03.2012, 10:06
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от Pavel M.
а где два массива ?
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: писался пример для забавы, поэтому косяки править лень.

Последний раз редактировалось monolithed, 22.03.2012 в 10:09.
Ответить с цитированием
  #10 (permalink)  
Старый 22.03.2012, 10:27
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

спасибо,
теперь понятно, что вы имели в виду под вторым массивом заполненным радномными элементами
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несколько одинаковых таблиц. Обращение к отдельным элементам в них. zaytsewa Элементы интерфейса 7 11.11.2010 09:08
Как узнать сколько членов в объекте kdie Общие вопросы Javascript 2 30.09.2009 12:28