Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #41 (permalink)  
Старый 27.12.2011, 13:48
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от Livaanderiamarum
не равны потому что разная память. не продолжаем потому что обнаружено кольцо.
Почему бы по факту разной памяти не остановится на первом же шаге, при проверке исходных объектов?)
Как это происходит в обычном операторе сравнения?)
Ответить с цитированием
  #42 (permalink)  
Старый 27.12.2011, 13:52
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

Сообщение от Gvozd Посмотреть сообщение
Почему бы по факту разной памяти не остановится на первом же шаге, при проверке исходных объектов?)
Как это происходит в обычном операторе сравнения?)
ой, точно я не понял сначала вопроса. в общем у меня есть вариант как это сделать просто расписывать лень. или все же расписать?
Ответить с цитированием
  #43 (permalink)  
Старый 27.12.2011, 13:55
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

сравнить таблицы с вложенными таблицами, это просто.
Но дело том что они могут быть цикличными. тут происходит анализ на цикличность.. и если наш скрипт смотрит что ссылка ведет на обьект который уже был получен ранее (фиксируется кольцевание кольцевание) , и этот обьект щас в стеке проверки. то тогда сравниваются названия ключей этого обьекта(из стека) и сравниваемого обьекта. если есть разница в названиях ключей, то обьекты не равны. если нет разницы, но кольцевание продолжается, тогда обьекты считаются разными, и продолжается анализ дальше, если там не найдено расхождений. то обьекты считаются раЗными из-за неопределенности. Иными словами таким методом хорошо закрученные обьекты не сравнить. Это ЕСЛИ этот метод на js делать, а если делать на уровне движка, то тут любые обьекты сравнить можно.

Последний раз редактировалось Livaanderiamarum, 27.12.2011 в 14:00.
Ответить с цитированием
  #44 (permalink)  
Старый 27.12.2011, 15:02
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от Livaanderiamarum
Это ЕСЛИ этот метод на js делать, а если делать на уровне движка, то тут любые обьекты сравнить можно.
А какое алгоритмическое преимущество даст уровень движка для этой задачи?
JS - тьюринг полный, так что на нем можно решить тот же класс задач, что и на уровне движка.
Так что "хорошо закрученные объекты" можно с одинаковым успехом сравнивать как на уровне движка, так и на уровне JS
Тот алгоритм, который ты привел - не позволяет их сравнить.

[telepatemode]
Может быть тебе не хватает функции получения адреса объекта в памяти?
Средствами JS вполне можно написать функцию, возвращающую "виртуальный" адрес в памяти, основываясь на стандартном операторе сравнения объектов.
Но, это так - предположение чего тебе не хватает.
[/telepatemode]

В общем все-таки хотелось бы увидеть алгоритм для "хорошо закрученных объектов"
Ответить с цитированием
  #45 (permalink)  
Старый 27.12.2011, 15:06
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

Сообщение от Gvozd Посмотреть сообщение
А какое алгоритмическое преимущество даст уровень движка для этой задачи?
JS - тьюринг полный, так что на нем можно решить тот же класс задач, что и на уровне движка.
Так что "хорошо закрученные объекты" можно с одинаковым успехом сравнивать как на уровне движка, так и на уровне JS
Тот алгоритм, который ты привел - не позволяет их сравнить.

[telepatemode]
Может быть тебе не хватает функции получения адреса объекта в памяти?
Средствами JS вполне можно написать функцию, возвращающую "виртуальный" адрес в памяти, основываясь на стандартном операторе сравнения объектов.
Но, это так - предположение чего тебе не хватает.
[/telepatemode]

В общем все-таки хотелось бы увидеть алгоритм для "хорошо закрученных объектов"
давайте напишем?
Ответить с цитированием
  #46 (permalink)  
Старый 27.12.2011, 15:12
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от Livaanderiamarum
давайте напишем?
Так пиши)) Тебе же нужно))
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #47 (permalink)  
Старый 27.12.2011, 15:25
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от trikadin
Так пиши)) Тебе же нужно))
+1
Ответить с цитированием
  #48 (permalink)  
Старый 27.12.2011, 16:06
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

Сообщение от Gvozd Посмотреть сообщение
+1
так пиши! тебе же хотелось бы увидеть) че тупишь то) не в обиду! если не понятна нить разговора то перечитывай тред)!
Ответить с цитированием
  #49 (permalink)  
Старый 28.12.2011, 01:28
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от Livaanderiamarum
так пиши! тебе же хотелось бы увидеть) че тупишь то) не в обиду! если не понятна нить разговора то перечитывай тред)!
Как я понял из треда, ты считаешь существующий механизм сравнения объектов неудобным/неправильным, и противопоставляешь ему сравнение, которое выдало бы для двух объектов с одинаковой структурой, что они равны.
У вас спросили, как бы вы сравнивали два объекта с рекурсивными ссылками, а я развил эту мысль.
А развил я ее, потому что интересующий вас механизм сравнения объектов не является таким уж очевидным с точки зрения алгоритма.

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

В вас же я заметил как практический, так и академический интерес к этой задаче. Возможно и ошибся)

Поэтому, я и предложил вам формализовать ваш алгоритм до конца.
Если вам этот алгоритм не нужен, и вам в практических целях достаточно стандартного сравнения объектов, то можете не реализовывать его.
А если все-таки нужен, то я бы с удовольствием посмотрел бы на вашу реализацию - потому что сам я пока не смог придумать алгоритм, решающий данную задачу.
Ответить с цитированием
  #50 (permalink)  
Старый 28.12.2011, 01:42
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Gvozd - рассматривать объект как граф и помечать посещённые узлы, как-то так. Но алгоритм будет... Пиздец)
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
Ответ



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

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