Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 08.10.2012, 02:11
Аватар для Shaci
:-/
Отправить личное сообщение для Shaci Посмотреть профиль Найти все сообщения от Shaci
 
Регистрация: 28.09.2009
Сообщений: 1,126

http://ru.wikipedia.org/wiki/%D0%90%...81%D0%B8%D1%8F

это арифметическая прогрессия, единственное число 1 как то выпадает из определения,
Ответить с цитированием
  #22 (permalink)  
Старый 08.10.2012, 02:22
Аватар для Дзен-трансгуманист
√₋̅₁̅
Отправить личное сообщение для Дзен-трансгуманист Посмотреть профиль Найти все сообщения от Дзен-трансгуманист
 
Регистрация: 18.06.2012
Сообщений: 385

Shaci,
Для арифметической прогрессии первого порядка нужно строго ДВА элемента (определяют две степени свободы: смещение относительно нуля и шаг). Тут этого ограничения явно нет. *чешет подбородок*
__________________

Гейзенберг, возможно, читал этот тред.

Последний раз редактировалось Дзен-трансгуманист, 08.10.2012 в 02:24.
Ответить с цитированием
  #23 (permalink)  
Старый 08.10.2012, 02:26
Аватар для Shaci
:-/
Отправить личное сообщение для Shaci Посмотреть профиль Найти все сообщения от Shaci
 
Регистрация: 28.09.2009
Сообщений: 1,126

Сообщение от Дзен-трансгуманист Посмотреть сообщение
Shaci,
Для арифметической прогрессии первого порядка нужно строго ДВА элемента (определяют две степени свободы: смещение относительно нуля и шаг). Тут этого ограничения явно нет.
ну так я и сказал это (если б хотя бы такая была - 0, 1, 4, 9)
p.s.
мне одному слово ИИ режет слух?, почему то я под ним воспринимаю что-то фантастическое, а не алгоритм полного перебора компьютерного игрока в шашки)

Последний раз редактировалось Shaci, 08.10.2012 в 02:29.
Ответить с цитированием
  #24 (permalink)  
Старый 08.10.2012, 02:46
Аватар для Дзен-трансгуманист
√₋̅₁̅
Отправить личное сообщение для Дзен-трансгуманист Посмотреть профиль Найти все сообщения от Дзен-трансгуманист
 
Регистрация: 18.06.2012
Сообщений: 385

Сообщение от Shaci
мне одному слово ИИ режет слух?
Добро пожаловать в клуб ИИ-фейспалмеров.)

Задача класса P налицо, какой тут нафиг ИИ...
__________________

Гейзенберг, возможно, читал этот тред.
Ответить с цитированием
  #25 (permalink)  
Старый 08.10.2012, 06:10
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от Дзен-трансгуманист
melky,
Думаю, тут не помешает поработать над формулировкой задачи.
угу.

там нолик затесался, с прошлой прогрессии. не знаю, почему он там остался.

вот почему задача такой ажиотаж вызвала

Сообщение от melky Посмотреть сообщение
Задача № 0

Составить функцию, которая продолжала бы числовую последовательность (арифм.).

Например :
var mySequence = continueSequence([  1, 4, 7, 10  ]);

mySequence(); // 13

mySequence(); // 16

Ответить с цитированием
  #26 (permalink)  
Старый 08.10.2012, 11:40
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от melky
там нолик затесался
тогда это не задача)
Ответить с цитированием
  #27 (permalink)  
Старый 08.10.2012, 13:41
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Сообщение от melky
вот почему задача такой ажиотаж вызвала
думаю ожиотаж вызвала мысль о гибкой функции continueSequence, способной определить множество последовательностей.
Пожалуй даже для такой суперфункции до какой-то степени можно обойтись без ИИ

к примеру
Если есть два образаца последовательности в одном массиве, и образцы операций. То можно отсеять только те операции которые дадут один результат в обоих последовательностях. Затем свести все обнаруженные операции в один паттерн, и по этому паттерну возвращать значения.

Вот набросал пример (с двумя образцами операций).

demo ( [0,1,2,3,4] );

demo ( [10,8,6,4,2] );

demo ( [1,2,3,2, 3,4,3] );

demo ( [1,10,100,1000,10000,100000,1000000] );

demo ( [1,2,3,30,31,32,320] );

demo ( [8192,4096,2048,1024,512] );

function demo(data){
   var z =continueSequence( data );
   for  (var i=1;i<10;i++) var ret=z();
   alert(ret);

}

function continueSequence(data){	
	matrix=[];
	var matrix=zakon1();
	mergeMatrix(matrix,zakon2());
	console.log(matrix);

	var step=0;
	cnt=data.length;	

	return function(){
                var ret=matrix[step].calc()
		
		step++;
		if (step>=matrix.length) step=0;
		return ret;			
	}

	function mergeMatrix(matrix,matrix2){
		for(var i=0;i<matrix.length;i++){
			if (matrix[i]==false ) matrix[i]=matrix2[i];
		}
	}


	//арифметическая последовательность с шагом
	function  zakon1(){
		var res=[];
		var pattern=[];

		//вычислим все разницы
		for (var i=1;i<data.length;i++){
			res[i-1]= data[i]-data[i-1] ;        
		}

		pattern=helper(res,act);

		function act(step){
			return {
				name:"zakon1",
				step:step,
				calc:function(){
					var r=data[data.length-1];
					r=r+this.step;
					data.push(r);
					return data;					
				}
			};
			
		}

		console.log(data);
		console.log(res);
		console.log(pattern);
		return pattern;	
	}


	//арифметическая последовательность с шагом
	function  zakon2(){
		var res=[];
		var pattern=[];

		//вычислим все разницы
		for (var i=1;i<data.length;i++){
			res[i-1]= data[i]/data[i-1] ;
		        
		}

		pattern=helper(res,act);

		function act(step){
			return {
				name:"zakon2",
				step:step,
				calc:function(){
					var r=data[data.length-1];
					r=r*this.step;
					data.push(r);
					return data;					
				}
			};
			
		}

		console.log(data);
		console.log(res);
		console.log(pattern);
		return pattern;	
	}



	function helper(res,act){
		var pattern=[];

		for (var i=0;i<res.length/2;i++){
			if (res[i] == res[i+res.length/2] ){
				pattern[i]=act(res[i]);
			} else {
				pattern[i]=false;
			}
				
		}  	
		return pattern;
	}
}


В перспективе думаю можно и отойти от двух образцов, но в этом случае мы можем получить несколько обьяснений одного числа, придётся перебирать комбинации этих конкурирующих обьяснений, сводить в один паттерн, и искать повторяющийся кусок в этой комбинации. Самый короткий но наиболее часто повторяющийся из всех кусков это и будет тот набор правил что мы ищем.
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 08.10.2012 в 14:30.
Ответить с цитированием
  #28 (permalink)  
Старый 08.10.2012, 14:10
Аватар для Maxmaxmахimus
司会
Отправить личное сообщение для Maxmaxmахimus Посмотреть профиль Найти все сообщения от Maxmaxmахimus
 
Регистрация: 29.02.2012
Сообщений: 198

Сообщение от Дзен-трансгуманист
Задача класса P налицо, какой тут нафиг ИИ...
ну реши её в чем проблема

DjDiablo,
основная проблема с тем что последовательность может иметь бесконечно паттернов обьясняющих её.

А так же проблема в том что алгоритм должен понимать отношения чисел друг к другу. ключивое слово ПОНИМАТЬ..

ну если я ошибаюсь сделайте это без ии.
Ответить с цитированием
  #29 (permalink)  
Старый 08.10.2012, 14:50
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Ой не спроста у тебя 666 кармы.

Речь о том что какой-то алгоритм превзойдёт человека или хотябы нейронную сеть не идёт. Я постарался приблизится к решению настолько насколько получилось, и предложил более совершенный алгоритм как развитие идеи.

Если кол-во паттернов бесконечно это уже хаос, и закономерности там не найти, ни человеку ни компьютеру.
да и вообще непонятно откуда там возьмётся бесконечное кол-во паттернов, если данная последовательность небесконечна, а кол-во операций в математике ограничено. Даже мой пример обнаруживающий + - * /, будет работать с любой комбинацией этих операций.

другое дело если вместо паттерна набор правил.
к примеру:
1-2-4-8-10-15-30-35-70-75-150-300-600
тоесть.
числа умножаюся на два
Но если они меньше 100 и делятся на 10 без остатка то к ним прибавляется 5

в прочем думаю обнаружение правил формирующих эту закономерность это тоже разрешимая задача.
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 08.10.2012 в 16:24.
Ответить с цитированием
  #30 (permalink)  
Старый 08.10.2012, 17:37
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

\
Сообщение от DjDiablo
Пожалуй даже для такой суперфункции до какой-то степени можно обойтись без ИИ
хм. сначала я имел в виду тупое прибавление одного числа к другому :
0 /* + 1 */ 1 /* + 2 */ 3 /* + 3 */ 6 /* + 4*/ 7 ...

continueSequence ()

// после этого :
... /* + 5*/ 12
/* + 6 */ 18
/* + 7 */ 25


элементарные ряды, можно сказать.

не думаю, что для решения рядов нужен ИИ - для нахождения первообразной даже есть код (на хабре была программа для решения матановой капчи)

тут нужна комбинаторика и алгоритмы вперёд, за Кнутом*!


* всё ещё собираюсь его книжку прочитать.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачи по Java and JavaScript Другое Имя Работа 1 26.10.2011 00:11
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Подходит ли Javascript для решения следующей задачи? alikol Оффтопик 4 24.10.2010 22:40
Подходит ли Javascript для решения следующей задачи? alikol Общие вопросы Javascript 7 24.10.2010 14:10
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34