Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Теория программирования > Алгоритмы
Перезагрузить страницу Язык без оператора сравнения
Ответ
 
Опции темы Опции просмотра
  (#31 (permalink)) Старый
kelz kelz вне форума
Member
 
Сообщений: 511
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 27.05.2004
По умолчанию 10.11.2006, 20:42

Цитата:
Приводит, но на твоём компе, а мы говорим про гипотетический комп,
Ну, тогда извиняйте, как только приобрету гипопетический комп - сразу сообщу ГЫ!!!
Ответить с цитированием
  (#32 (permalink)) Старый
zarazka zarazka вне форума
Новичок
 
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 08.11.2006
По умолчанию 10.11.2006, 22:17

Цитата:
Originally posted by Dian
[b]Так адекватность програмёров вообще под сомнением
вот не рискнула б преподавателя давшего задание программистом назвать...
Ответить с цитированием
  (#33 (permalink)) Старый
ddRoot ddRoot вне форума
Member
 
Сообщений: 263
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 07.11.2006
По умолчанию 11.11.2006, 00:08

В чем прикол-то? Задача же написать сортировку, не используя сравнения. То-есть сравнивать элементы массива запрещено. Как уже сказали, это сделать возможно. И не только индексной сортировкой.
А насчет инструкций jz и т.д. - как же без них цикл организовать? Линейный алгоритм сортировки пузырьком
Цитата:
вот не рискнула б преподавателя давшего задание программистом назвать...
Так кто ж преподов программерами осмелится назвать? Для большинства это недостижимая планка Хотя бывают и исключения
Ответить с цитированием
  (#34 (permalink)) Старый
Dian Dian вне форума
Member
 
Сообщений: 5,243
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.09.2004
По умолчанию 11.11.2006, 05:14

Бывают случаи, когда программеры преподают.

А вот комп без циклов точно смысла не имеет
Ответить с цитированием
  (#35 (permalink)) Старый
Кошмар Кошмар вне форума
Member
 
Сообщений: 2,694
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 23.04.2005
По умолчанию 11.11.2006, 11:29

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

А по поводу задачи - это очень широко известная головоломка, я не знаю, почему столько споров... Просто препод её модифицировал, и вместо того, чтобы попросить написать функцию, возвращ. мин. элем. из двух, попросил написать целую сортировку.


импортирован с progz.ru
Ответить с цитированием
Ads.
  (#36 (permalink)) Старый
Dian Dian вне форума
Member
 
Сообщений: 5,243
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.09.2004
По умолчанию 11.11.2006, 14:25

Да и вся сортировка тоже баян. А споры появляются когда люди тупят
Ответить с цитированием
Ads
  (#37 (permalink)) Старый
Vladimir the Red Sunny Vladimir the Red Sunny вне форума
Member
 
Сообщений: 4,232
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 15.05.2003
По умолчанию 12.11.2006, 09:47

Так как языков без оператора сравнения у нас не очень много, можно ли по условию задачи написать на существующем языке, не используя оператор сравнения?
Код:
   a =. 3 4 1 2 4 5 7
   a
3 4 1 2 4 5 7
   a/:a
1 2 3 4 4 5 7
   a\:a
7 5 4 4 3 2 1
Ответить с цитированием
  (#38 (permalink)) Старый
Dian Dian вне форума
Member
 
Сообщений: 5,243
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.09.2004
По умолчанию 12.11.2006, 18:15

Хоть мертвый. Только не предусматривающий встроенной сортировки
Ответить с цитированием
  (#39 (permalink)) Старый
Vladimir the Red Sunny Vladimir the Red Sunny вне форума
Member
 
Сообщений: 4,232
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 15.05.2003
По умолчанию 12.11.2006, 21:19

Ну да, давайте начнем придумывать дополнительные ограничения по ходу дела....
Ответить с цитированием
  (#40 (permalink)) Старый
Among Among вне форума
Member
 
Сообщений: 27
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 08.11.2006
По умолчанию 13.11.2006, 06:49

Мне тут подсказали что есть ткой Хеш алгоритм и это можно сделать вроде как с помощью его
Ответить с цитированием
  (#41 (permalink)) Старый
Among Among вне форума
Member
 
Сообщений: 27
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 08.11.2006
По умолчанию 13.11.2006, 07:06

Цитата:
Господа что б понять как эту задачу решить надо полностью прочесть задание:
в итоге имеем тапорное решение:
Код:
type
    int  = integer;
    bool = boolean;
const
    k =  10;
    n = -10;
    m =  10;
var
    a    : array[1..k] of int;
    i,j,e: int;
    sort : array[n..m] of int;
begin
    randomize;
    for i:=1 to k do
        a[i] := random(m-n+1)+n;

    for i:=1 to k do
        write(a[i], ' ');
    writeln;

    for i:=n to m do
        sort[i]:=0;
    for i:=1 to k do
        inc(sort[a[i]]);
    e:=1;
    for i:=n to m do
        for j:=1 to sort[i] do
        begin
            a[e] := i;
            inc(e);
        end;

    for i:=1 to k do
        write(a[i], ' ');
    writeln;

    readln;
end.
Здорово я почитал про хеш функцию по моему это оно самое
Ответить с цитированием
  (#42 (permalink)) Старый
SiMM SiMM вне форума
Member
 
Сообщений: 1,961
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.08.2003
По умолчанию 13.11.2006, 08:41

Хэш-функция - это другое. Но вся закавыка в том, что это требует очень много вспомогательной памяти даже при небольших объёмах информации (к примеру, диапазон чисел в исходном массиве от -2147483648 до 2147483647 - а это 4*4=16 Гб под счётчики).
Ответить с цитированием
  (#43 (permalink)) Старый
Vladimir the Red Sunny Vladimir the Red Sunny вне форума
Member
 
Сообщений: 4,232
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 15.05.2003
По умолчанию 13.11.2006, 15:23

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

А разве "тапорное решение" - это вообще решение? В цикле же оператор сравнения используется. Или если неявно - не считается?
Ответить с цитированием
  (#44 (permalink)) Старый
ddRoot ddRoot вне форума
Member
 
Сообщений: 263
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 07.11.2006
По умолчанию 13.11.2006, 20:09

Vladimir the Red Sunny, тогда задача бессмысленная получается Думаю, формулировалась она действительно в виде: "сделаете или нет?" чтоб показать еще один способ сортировки, для случая, когда это возможно сделать подсчетом. Например, дано лимон байтовых чисел и их надо отсортировать паскалем. Ну никак в память не запихаешь. И по времени N log N не пройдет. Только линейно. Вот и догадывайся. Догадались. А то, что в условии сказано, что без сравнения, это глюки "интерпретации" Все-таки цикл надо как-то организовывать, так не аппаратно же Можно, конечно, углубиться в условия - есть цикл, нету цикла, есть встроенная сортировка или нет, много ли у нас памяти, много ли времени...
Думаю, подразумевалось уже приведенное решение.

Теперь забудем про отсутствие сравнения. На счет хеш-функций - тоже поспорить можно. Показан самый простой случай хеша - значение. Для большего интервала можно другую ф-ю применить, например, выделяя последнюю десятичную (двоичную, шестнадцатиричную) цифру. Потом предпоследнюю и т.д. Так получим ковшевую сортировку (ну или как там ее)
Ответить с цитированием
  (#45 (permalink)) Старый
Among Among вне форума
Member
 
Сообщений: 27
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 08.11.2006
По умолчанию 14.11.2006, 05:16

а for это не цикл, а условие - так нам сказали, и решение предлагаемое zarzaka как раз подходит к условию задачи - это я ради интереса попытал другого препода
Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Утилита сравнения двух каталогов Matematic Офтопик 49 20.12.2013 11:38
Программа для сравнения двух BMP-файлов 5neverthesame94 Вопросы начинающих программистов 9 02.04.2012 22:29
Сортировка слиянием - количество операций сравнения Rizza Вопросы начинающих программистов 0 30.06.2011 14:22
Программа для сравнения фотографий одного человека валерьич Вопросы начинающих программистов 1 11.12.2010 07:34
Цены в моем городе. Зацените для сравнения? ELECTRONIC Процессоры 2 03.04.2010 17:17
Функция сравнения ячеек Nagv Visual Basic 4 09.06.2006 15:37
Операции сравнения и приведения типов imported_Ferz Вопросы начинающих программистов 17 29.03.2006 17:56
Алгоритм сравнения двух текстов :shock: rutman Visual Basic 0 28.10.2004 14:41
Скриптовый язык vs Язык программирования relonar Мысли вслух 4 24.09.2004 02:14
По умолчанию язык ввода стоит английский, то в паскале язык не переключается imported_Liliya Pascal 17 16.01.2004 03:36
Операция сравнения в классе AnsiString Templar C++ Builder 5 18.01.2003 17:08
Команда сравнения в INTEL 8085 ortho Assembler 5 18.06.2002 18:08



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов