| 
	| 
	
	| 
		
	| 
			
			 
			
				17.03.2012, 19:08
			
			
			
		 |  
	| 
		
			
			| Новичок на форуме       |  | 
					Регистрация: 17.03.2012 
						Сообщений: 5
					 
		
 |  |  
	| 
				Сгенерировать 2 последовательности и узнать сколько в них одинаковых элементов
			 Сгенерировать последовательность с помощью датчика случайных чисел и обработать задание:сколько соответствующих элементов двух последовательностей с одинаковым количеством элементов совпадают. Массивы не используются.
 Помогите, пожалуйста, знаю как сравниваются числа, как считается количество элементов в последовательности, а вот как сравнить соответствующие элементы и узнать сколько их, что-то не могу понять.
 
 Заранее спасибо!
 |  |  
	| 
		
	| 
			
			 
			
				17.03.2012, 19:20
			
			
			
		 |  
	| 
		
			|  | junior       |  | 
					Регистрация: 29.11.2011 
						Сообщений: 3,924
					 
		
 |  |  
	| Будьте любезны, Ваш код. 
				__________________Чебурашка стал символом олимпийских игр. А чего достиг ты?
 Тишина - самый громкий звук
 |  |  
	| 
		
	| 
			
			 
			
				18.03.2012, 02:47
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 27.05.2010 
						Сообщений: 33,150
					 
		
 |  |  
	| Ирина Владимировна,1 способ.Генерировать 2 последовательности и сравнивать последние добавленные элементы на равенство.
 2.Превратить заранее сгенерированные последовательности в массивы с помощью str.split('') и затем последовательно сравнить элементы этих массивов.
 3.Взять нужный элемент последовательности для сравнения с помощью str.substr(start, 1)
 |  |  
	| 
		
	| 
			
			 
			
				21.03.2012, 17: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 последовательности с одинаковым количеством элементов, как найти элементы которые совпадают не знаю.
 |  |  
	| 
		
	| 
			
			 
			
				21.03.2012, 17:17
			
			
			
		 |  
	| 
		
			
			| Новичок на форуме       |  | 
					Регистрация: 17.03.2012 
						Сообщений: 5
					 
		
 |  |  
	| рони,Спасибо, попробую, надеюсь получится.
 |  |  
	| 
		
	| 
			
			 
			
				21.03.2012, 19:46
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 27.05.2010 
						Сообщений: 33,150
					 
		
 |  |  
	| Ирина Владимировна, 
 Вариант 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>
 |  |  
	| 
		
	| 
			
			 
			
				22.03.2012, 09:14
			
			
			
		 |  
	| 
		
			
			| Особый гость     |  | 
					Регистрация: 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));
 |  |  
	| 
		
	| 
			
			 
			
				22.03.2012, 10:00
			
			
			
		 |  
	| 
		
			
			| Лаборант :-)       |  | 
					Регистрация: 08.11.2011 
						Сообщений: 806
					 
		
 |  |  
	| 
	
 
	| Сообщение от monolithed |  
	| Генерирует два массива одинаков длины, заполненные радномными элементами. |  
	
 а где два массива ? 
вроде только один 
(random * i).toFixed(i).slice(2).split('')
 
и что будет если вызвать не 
compare_random_array(10) 
а например 
compare_random_array(30) |  |  
	| 
		
	| 
			
			 
			
				22.03.2012, 11:06
			
			
			
		 |  
	| 
		
			
			| Особый гость     |  | 
					Регистрация: 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 в 11:09.
 |  |  
	| 
		
	| 
			
			 
			
				22.03.2012, 11:27
			
			
			
		 |  
	| 
		
			
			| Лаборант :-)       |  | 
					Регистрация: 08.11.2011 
						Сообщений: 806
					 
		
 |  |  
	| спасибо, теперь понятно, что вы имели в виду под вторым массивом заполненным радномными элементами
 |  |  |  |