Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2005.01.16;
Скачать: [xml.tar.bz2];

Вниз

Курс молодого бойца (читать - программиста)   Найти похожие ветки 

 
Игорь Шевченко ©   (2004-12-26 00:55) [40]

Kerk ©   (25.12.04 12:07) [19]


> Нет, Игорь. Он должен это уметь.. И иконку в трей запуздырить
> и лоток выдвинуть.. задачи разные бывают.


Роман, а смысл долга уметь это делать ? Задач, которые требуют таких вот умений, очень ограниченное количество и они уже давным-давно решены, судя по обилию иконок в трее и "выдвигателей лотков CD-ROM" на разного рода download-сайтах. Я, к стыду своему, не знаю, кому может в здравом уме и твердой памяти придти в голову пользоваться программой, выдвигающей этот злополучный лоток, когда его можно выдвинуть кнопкой на самом устройстве. CD-ROM"ов без кнопок я за свою не очень короткую жизнь еще не видел, вряд ли чего-то пропустил.

С уважением,


 
default ©   (2004-12-26 00:56) [41]

OneFragLeft ©   (26.12.04 00:49) [37]
туда же
может правда формулировка чуть другая в оригинале
"чем больше знаешь тем больше понимаешь что ничего не знаешь"


 
Хакер ©   (2004-12-26 00:57) [42]

Игорь Шевченко ©   (26.12.04 0:55) [40]
ага, я ещё НЕ разу никогда не юзал спец-прогу для видвигания лотка :)))


 
OneFragLeft ©   (2004-12-26 01:03) [43]

Вот тут возник ещё один вопрос:
А каких программ ещё нет? Кому что нужно?
Хочу начать делать то, что никто ещё не делал.
Чтобы возникали передо мной задачи, готовые
ответы на которые, нельзя найти.
Подкиньте идей. А то вроде есть программы для всего,
но программисты что-то ещё делают:)


 
default ©   (2004-12-26 01:06) [44]

OneFragLeft ©   (26.12.04 01:03) [43]
попробуй для начала сделать [1]
несомненно неплохая алгоритмическая задача


 
OneFragLeft ©   (2004-12-26 01:08) [45]

если честно, то я не понял что значит:
Основная проблема - сделать это за время O(N) с затратами памяти меньшими, чем O(N).

Поясните, пожалуйста.


 
default ©   (2004-12-26 01:13) [46]

OneFragLeft ©   (26.12.04 01:08) [45]
линейный рост времени работы алгоритма как функции её числа
то есть к примеру на два элемента тратиться 4 секунды, на три элемента будет тратиться 6 секунд, на четыре 8 и тд
а используемая дополнительная память должна не зависеть от числа элементов либо расти по порядку медленне чем N
например, LogN*N


 
OneFragLeft ©   (2004-12-26 01:16) [47]

Т.е. я могу создать ещё один такой-же массив?


 
default ©   (2004-12-26 01:18) [48]

OneFragLeft ©   (26.12.04 01:16) [47]
тогда рост памяти будет линейно зависеть от числа элементов что не допускает условие
"с затратами памяти меньшими, чем
O(N)."


 
OneFragLeft ©   (2004-12-26 01:20) [49]

ага, ясно.
Т.е. могу использовать только одну-две переменные?


 
default ©   (2004-12-26 01:24) [50]

OneFragLeft ©   (26.12.04 01:20) [49]
да, какое-то ограниченное количество памяти либо память в зависимости от числа элементов массива должна расти медленне чем растёт линейная функция


 
OneFragLeft ©   (2004-12-26 02:43) [51]

Вот так должно быть?


procedure ReOrder;
var B,i,j,n:integer;
   S:Array[0..9] of Integer;
begin
i:=1;//счётчик
n:=10;//кол-во элементов в массиве (просто не знаю как это программно посчитать)
//ну а дальше ясно
While i<round(n/2) do
begin
B:=S[i];
For j:=i to n-i do
begin
 S[j]:=S[j+1];
end;
S[n-i]:=B;
i:=i+1;
end;


Знаний маловато, поэтому не смог сделать чтобы в процедуру посылался массив.
Проверил на работоспособность с чётным и нечётным количеством элементов.
Вроде работает...


 
default ©   (2004-12-26 02:58) [52]

OneFragLeft ©   (26.12.04 02:43) [51]
тут заведомо нелинейное время
лучше тогда не трогай её
на счёт решения - я сам его не знаю пока)


 
OneFragLeft ©   (2004-12-26 03:14) [53]

А как узнать, существует ли оно вообще.
Может и нет решения.


 
MBo ©   (2004-12-26 07:07) [54]

>OneFragLeft ©   (26.12.04 03:14) [53]
Решение существует.
Ограничения на размер памяти и время связаны вот с чем -
1. несложно создать второй такой же массив и скопировать нужные элементы на нужные места - т.е. это путь с большими затратами памяти.
2. Возможно многократно сложным образом переставлять элементы в исходном массиве, пока не придем к нужному порядку - это требует существенно более, чем n^2 операций - т.е. путь с большими затратами памяти.

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


 
Igorek ©   (2004-12-26 09:49) [55]

OneFragLeft ©   (25.12.04 2:07)

>все типичные задачи,
>которые должен уметь выполнять начинающий
> программист, осваивающий Delphi

- читать хорошие книги о Delphi
- пользоваться F1, MSDN, DelphiWorld, Google, VCL sources
- пробовать все на практике
- хорошенько поискать ответ на вопрос прежде чем постить на форумы

Все это должен уметь не только начинающий, но начинающему этого пока достаточно.

Игорь Шевченко ©   (25.12.04 2:16) [3]
Ну ты меня успокоил. :-)

MBo ©   (26.12.04 7:07) [54]
Я вот не понял как формируется новый массив:
- последнее, предпоследнее слева от него, предпредпоследнее справа ...
или
- первое слева, второе справа, третье слева за первым, четвертое - справа за вторым
?


 
MBo ©   (2004-12-26 10:04) [56]

>как формируется новый массив:
четные элементы (считая с нуля)  - в первой половине, нечетные - во второй в обратном порядке, т.е. второй твой способ.


 
default ©   (2004-12-26 13:12) [57]

MBo ©   (26.12.04 10:04) [56]
можно подсказочку:
затраты времени O(1) или всё-таки зависят от числа элементов?


 
Igorek ©   (2004-12-26 15:13) [58]


> сделать это за время O(N)


 
default ©   (2004-12-26 16:26) [59]

Igorek ©   (26.12.04 15:13) [58]
я имел ввиду память
но из "Так вот задача состоит в том, чтобы использовать только несколько дополнительных переменных, и минимизировать число операций (перестановок)."
ясо что затраты памяти O(1), а не например O(LogN)


 
GrayFace ©   (2004-12-28 11:59) [60]

default ©   (26.12.04 0:45) [36]
кстати довольно характерная черта людей - когда они что-то неплохо знают считать это за сомо собой разумеешееся и требовать того же от других
всё же лучше исходить из объективности

Вообще-то он прав, просто выразился вначале неверно. А вот это верно: Уметь писать программы - это часть компьютерной грамотности.

MBo ©   (26.12.04 7:07) [54]
Так вот задача состоит в том, чтобы использовать только несколько дополнительных переменных, и минимизировать число операций (перестановок).

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

Igorek ©   (26.12.04 9:49) [55]
- хорошенько поискать ответ на вопрос прежде чем постить на форумы

А я с этим не согласен. ИМХО, достаточно искать в F1 и MSDN, а уж Google и т.п. - это после форумов. Если уж искать, то искать на форумах. А если вопрос не стандартный, то и пытаться искать не стоит.

default ©   (26.12.04 16:26) [59]
я имел ввиду память
но из "Так вот задача состоит в том, чтобы использовать только несколько дополнительных переменных, и минимизировать число операций (перестановок)."
ясо что затраты памяти O(1), а не например O(LogN)

Видимо, решения с O(logN) и т.п. просто не получится выдумать.



Страницы: 1 2 вся ветка

Форум: "Потрепаться";
Текущий архив: 2005.01.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.58 MB
Время: 0.156 c
1-1103985482
emfw
2004-12-25 17:38
2005.01.16
Неизвестный файл


3-1103012079
MgFox
2004-12-14 11:14
2005.01.16
ADO Connection String не создается


10-1080311374
seacat
2004-03-26 17:29
2005.01.16
Midas и прокси


14-1104320614
TUser
2004-12-29 14:43
2005.01.16
Есть ли такой эксперт


1-1103885159
Дитё
2004-12-24 13:45
2005.01.16
Можно ли по объекту узнать в каком модуле он объявлен ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский