Посчитать символы
От: Real 3L0 Россия http://prikhodko.blogspot.com
Дата: 23.06.05 02:56
Оценка:
Надумалось тут.
Дано: OS >= Win2000. Notepad. В нём N символов знака $. У вас есть память.
Ограничения: Вы знаете операции сложения, умножения и скобки, которые в уме вычисляются за 0 секунда, но на считывание 1 символа с экрана у Вас уходит 1 секунда. Пользоваться можно только блокнотом. Использование функций блокнота занимает 0 секунд.
Надо: Посчитать колличество символов за минимальное время.
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Вселенная бесконечна как вширь, так и вглубь.
Re: Посчитать символы
От: adontz Грузия http://adontz.wordpress.com/
Дата: 23.06.05 03:12
Оценка:
Здравствуйте, Real 3L0, Вы писали:

Очевидно заменить все символы не равные $ на пустые строки. Останутся только $
Потом включить WordWarp
Потом подсчитать длину полной строки и количество столбцов, перемножить и добавить длину последней не полной строки если таковая имеется.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[2]: Посчитать символы
От: Real 3L0 Россия http://prikhodko.blogspot.com
Дата: 23.06.05 03:48
Оценка:
Здравствуйте, adontz, Вы писали:

A>Очевидно заменить все символы не равные $ на пустые строки. Останутся только $


Ну всё подметят, если не оговоришь заранее. Я имел в виду, что в тексте блокнота только $.

A>Потом включить WordWarp

A>Потом подсчитать длину полной строки и количество столбцов, перемножить и добавить длину последней не полной строки если таковая имеется.

Т.е. выходит, что на подсчет тебе надо ((Строка * Столбец) + символов в послед. строке) секунд.
Можно быстрее. Попробовал на примере.
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Вселенная бесконечна как вширь, так и вглубь.
Re[3]: Посчитать символы
От: adontz Грузия http://adontz.wordpress.com/
Дата: 23.06.05 03:51
Оценка:
Здравствуйте, Real 3L0, Вы писали:

R3>Т.е. выходит, что на подсчет тебе надо ((Строка * Столбец) + символов в послед. строке) секунд.

R3>Можно быстрее. Попробовал на примере.

Почему умножить? Сложить!
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[4]: Посчитать символы
От: Real 3L0 Россия http://prikhodko.blogspot.com
Дата: 23.06.05 05:00
Оценка:
Здравствуйте, adontz, Вы писали:

R3>>Т.е. выходит, что на подсчет тебе надо ((Строка * Столбец) + символов в послед. строке) секунд.

R3>>Можно быстрее. Попробовал на примере.

A>Почему умножить? Сложить!


+1. Только всё равно можно быстрее. Может я что-то упускаю из виду, но на примере:

$$$$$
$$$$$
$$$$


12 секунд по твоему и 9 — по моему методу.
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Вселенная бесконечна как вширь, так и вглубь.
Re: Посчитать символы
От: Erop Россия  
Дата: 23.06.05 05:48
Оценка: 32 (6)
Здравствуйте, Real 3L0, Вы писали:

R3>Надумалось тут.

R3>Надо: Посчитать колличество символов за минимальное время.

Я чего-то не понял в условии, но можно считать как-то так:

1) заменить $$ на 1
2) заменить 11 на 2
3) заменить 22 на 3
4) заменить 33 на 4

и т. п.

Порлучим сроку вида: 42$, которая соответствует 16 + 4 + 1 = 21 знаку $

Если хочется скорости, то можно увеличить основание системы счисления
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[2]: Посчитать символы
От: Real 3L0 Россия http://prikhodko.blogspot.com
Дата: 23.06.05 06:32
Оценка:
Здравствуйте, Erop, Вы писали:

E>1) заменить $$ на 1

E>2) заменить 11 на 2
E>3) заменить 22 на 3
E>4) заменить 33 на 4

Хм... Ты пошел ещё дальше, чем я.
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Вселенная бесконечна как вширь, так и вглубь.
Re[5]: Посчитать символы
От: mihoshi Россия  
Дата: 23.06.05 07:05
Оценка:
Здравствуйте, Real 3L0, Вы писали:

R3>
R3>$$$$$
R3>$$$$$
R3>$$$$
R3>


R3>12 секунд по твоему и 9 — по моему методу.


Давайте уточним.
1. Операцией считывания считается проверка того, что в знакоместе (x,y) находится $.
2. Все доллары идут подряд.

Тогда самый тупой метод — идем от знакоместа (1,1) вниз, пока не кончатся долары. Потом по нижнией строчке вправо, пока не кончатся. Потом по предпоследней строчке вправо. Получается, действительно, 9 для указанного примера.

Можно ускорить процесс для больших размеров, используя деление пополам. Получим скорость порядка (2*ln(h) + 4*ln(w))/ln(2).
Re: Посчитать символы
От: _JoKe_  
Дата: 23.06.05 07:44
Оценка: 4 (1)
Здравствуйте, Real 3L0, Вы писали:

R3>Надумалось тут.

R3>Дано: OS >= Win2000. Notepad. В нём N символов знака $. У вас есть память.
R3>Ограничения: Вы знаете операции сложения, умножения и скобки, которые в уме вычисляются за 0 секунда, но на считывание 1 символа с экрана у Вас уходит 1 секунда. Пользоваться можно только блокнотом. Использование функций блокнота занимает 0 секунд.
R3>Надо: Посчитать колличество символов за минимальное время.

ну если арифметические операции и операции с блокнотом занимают 0 времени, то за 0 секунд и считается — вызываем у блокнота "find" $ и на каждом "find next" делаем +1
... << RSDN@Home 1.1.4 @@subversion >>
Re[6]: Посчитать символы
От: Real 3L0 Россия http://prikhodko.blogspot.com
Дата: 23.06.05 08:04
Оценка:
Здравствуйте, mihoshi, Вы писали:

M>Давайте уточним.


Ответ
Автор: Erop
Дата: 23.06.05
.

M>1. Операцией считывания считается проверка того, что в знакоместе (x,y) находится $.


Операция считывание = чтение одного символа с экрана, не важно какого. А так, как это блокнот, то чтобы прочитать, какой символ находится в (x,y) надо отсчитать/прочитать x+y символов.

M>2. Все доллары идут подряд.


Да.
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Вселенная бесконечна как вширь, так и вглубь.
Re[2]: Посчитать символы
От: Real 3L0 Россия http://prikhodko.blogspot.com
Дата: 23.06.05 08:28
Оценка:
Здравствуйте, _JoKe_, Вы писали:

_JK> ну если арифметические операции и операции с блокнотом занимают 0 времени, то за 0 секунд и считается — вызываем у блокнота "find" $ и на каждом "find next" делаем +1


Читер.
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Вселенная бесконечна как вширь, так и вглубь.
Re[3]: Посчитать символы
От: Ranger_XL  
Дата: 23.06.05 08:47
Оценка:
R3> Читер.

_Joke_ прав или постановка задачи неполная. При методе "find next" надо ровно N раз нажать на кнопку, и никакой исходный текст не модифицируется!
Re[4]: Посчитать символы
От: Real 3L0 Россия http://prikhodko.blogspot.com
Дата: 23.06.05 09:30
Оценка:
Здравствуйте, Ranger_XL, Вы писали:

R_X>_Joke_ прав или постановка задачи неполная.


А никто и не говорит, что он не прав.
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Вселенная бесконечна как вширь, так и вглубь.
Re[3]: Посчитать символы
От: Cadet  
Дата: 03.08.05 16:03
Оценка:
Здравствуйте, Real 3L0, Вы писали:

R3>Здравствуйте, Erop, Вы писали:


E>>1) заменить $$ на 1

E>>2) заменить 11 на 2
E>>3) заменить 22 на 3
E>>4) заменить 33 на 4

R3>Хм... Ты пошел ещё дальше, чем я.


Так. А чтобы заменить $$ на 1 не потребуется 2 секунды? Какое тогда преимущество имеет метод перед прямым пересчетом?
... << RSDN@Home 1.1.4 stable rev. 510>>
Re[4]: Посчитать символы
От: Real 3L0 Россия http://prikhodko.blogspot.com
Дата: 04.08.05 01:12
Оценка:
Здравствуйте, Cadet, Вы писали:

C>Так. А чтобы заменить $$ на 1 не потребуется 2 секунды? Какое тогда преимущество имеет метод перед прямым пересчетом?


Одно из условий задачи:

Использование функций блокнота занимает 0 секунд.

... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Вселенная бесконечна как вширь, так и вглубь.
Re: Посчитать символы
От: DmitryDV Туркмения  
Дата: 04.08.05 13:13
Оценка: 16 (3)
Здравствуйте, Real 3L0, Вы писали:

R3>Надумалось тут.

R3>Дано: OS >= Win2000. Notepad. В нём N символов знака $. У вас есть память.
R3>Ограничения: Вы знаете операции сложения, умножения и скобки, которые в уме вычисляются за 0 секунда, но на считывание 1 символа с экрана у Вас уходит 1 секунда. Пользоваться можно только блокнотом. Использование функций блокнота занимает 0 секунд.
R3>Надо: Посчитать колличество символов за минимальное время.

Можно так.

1) Увеличиваем размер шрифта до максимального
2) Включаем Word Wrap
3) Сужаем окно блокнота до тех пор пока в клиенсткой области по ширине будет умешатся только один символ $
т.е мы получим столбик шириной 1 символ
4) Нажимаем Edit->Goto... и сюда вводим любую букву, не число

Блокнот ругается, и внимание!!! подставляет число == количеству строк, т.е колиство символов в нашем случае
Все.

Итого оверхед = 0;
Re[2]: Посчитать символы
От: wildwind Россия  
Дата: 04.08.05 14:05
Оценка:
Здравствуйте, DmitryDV, Вы писали:

DDV>4) Нажимаем Edit->Goto... и сюда вводим любую букву, не число

DDV>Блокнот ругается, и внимание!!! подставляет число == количеству строк, т.е колиство символов в нашем случае

У меня не работает. Ругается "Line number out of range." Windows 2000. Что я делаю неправильно?
Re[3]: Посчитать символы
От: DmitryDV Туркмения  
Дата: 04.08.05 14:14
Оценка:
Здравствуйте, wildwind, Вы писали:

W>Здравствуйте, DmitryDV, Вы писали:


DDV>>4) Нажимаем Edit->Goto... и сюда вводим любую букву, не число

DDV>>Блокнот ругается, и внимание!!! подставляет число == количеству строк, т.е колиство символов в нашем случае

W>У меня не работает. Ругается "Line number out of range." Windows 2000. Что я делаю неправильно?


После ругани он подставит в удитбокс диалога число строк. и даже на числе поставит селекшн
Проверял на Windows Advanced Server 2000,
В WindowsXp букву ввести не дает, зато можно ввести заведомо большее число, например int.MaxValue
эффект буддет тотже самый
Re[4]: Посчитать символы
От: wildwind Россия  
Дата: 04.08.05 14:15
Оценка:
Здравствуйте, DmitryDV, Вы писали:

DDV>После ругани он подставит в удитбокс диалога число строк.

Точно, не заметил.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.