Автор Тема: Неархитектурная задачка  (Прочитано 43715 раз)

Губанов Сергей Юрьевич

  • Hero Member
  • *****
  • Сообщений: 590
    • Просмотр профиля
    • Домашняя страница
Re: Неархитектурная задачка
« Ответ #30 : Май 16, 2012, 10:31:34 am »
Гм. У меня эта программа ничего не запрашивает и выдает странное
Начальные условия в самом исходнике, поэтому не спрашивает. Выдает странное -- чем компилировал?

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Неархитектурная задачка
« Ответ #31 : Май 16, 2012, 10:56:29 am »
Выдает странное -- чем компилировал?
Видимо, компилятором C# из Mono...
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Неархитектурная задачка
« Ответ #32 : Май 16, 2012, 11:36:09 am »
Совсем чуток оптимизировал. На i7 3770K выполняется за 0.107 секунды.

Добавил подсчет времени (полный, включая ввод/вывод). На моей машине ~0.1 с. И там еще можно пооптимизить ;)

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Неархитектурная задачка
« Ответ #33 : Май 16, 2012, 11:54:28 am »
Гм. У меня эта программа ничего не запрашивает и выдает странное
Начальные условия в самом исходнике, поэтому не спрашивает. Выдает странное -- чем компилировал?
Компилировал mono'вским компилятором. Под линухом 32 бита.

Сейчас на макось поставил mono, собрал компилятором dmcs, и заработало. Видимо вся штука в том, что макось 64битная (и проц соответственно). То есть твоя программа просто не работает под 32 бита.

А скорость работы такая:
dt=0.273248

...

real 0m0.337s
user 0m0.323s
sys 0m0.010s

Ну, то есть примерно 0.3 секунды. Решение влада на этой же машине - 0.15 секунды. Где-то в два раза быстрее (при том, что оно и на линуксе 32битном работает ;-) )
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Неархитектурная задачка
« Ответ #34 : Май 16, 2012, 11:54:48 am »
Команды прямо скопированы, как есть?
Т.е. после команды Load должны быть цифры. Она их введёт.
Ещё чтобы выделенного текста нигде не было, иначе будет вводить оттуда.

Заработало! Как померять время - не знаю. Вообще, если соревноваться в оптимизации, то нужно, чтобы оно могло сразу набор принимать (stdin или файл).

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Неархитектурная задачка
« Ответ #35 : Май 16, 2012, 12:01:36 pm »
Как померять время - не знаю.

Нашел. 905ms для "!P307SudokuCmds.Solve".

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Неархитектурная задачка
« Ответ #36 : Май 16, 2012, 12:03:09 pm »
Как померять время - не знаю.

Нашел. 905ms для "!P307SudokuCmds.Solve".
А что эта криптострока означает?
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Неархитектурная задачка
« Ответ #37 : Май 16, 2012, 12:05:42 pm »
А что эта криптострока означает?

Дык, коммандер блэкбоксовский :) Оно там в три этапа сделано: загрузка, решение, и печать.

P.S. Кстати, оно у меня трапнулось (похоже по ассерту) в какой-то момент - когда чего-то выделено было, а я попытался "загрузку" запустить.

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Неархитектурная задачка
« Ответ #38 : Май 16, 2012, 12:08:07 pm »
А что эта криптострока означает?

Дык, коммандер блэкбоксовский :) Оно там в три этапа сделано: загрузка, решение, и печать.

P.S. Кстати, оно у меня трапнулось (похоже по ассерту) в какой-то момент - когда чего-то выделено было, а я попытался "загрузку" запустить.
А как скорость измерялась?
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

Peter Almazov

  • Sr. Member
  • ****
  • Сообщений: 482
    • Просмотр профиля
Re: Неархитектурная задачка
« Ответ #39 : Май 16, 2012, 12:12:52 pm »
На моей тачке решение от vlad тоже работает примерно в два раза быстрее решения от Сергея.
0.312 против 0.68

Губанов Сергей Юрьевич

  • Hero Member
  • *****
  • Сообщений: 590
    • Просмотр профиля
    • Домашняя страница
Re: Неархитектурная задачка
« Ответ #40 : Май 16, 2012, 12:35:36 pm »
Компилировал mono'вским компилятором
Попробовал gmcs. Компилирует не правильно. Как с ним бороться не знаю. Если компилировать в MS VS 2008, а потом запускать под Mono, то нормально работает.

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Неархитектурная задачка
« Ответ #41 : Май 16, 2012, 12:40:17 pm »
Компилировал mono'вским компилятором
Попробовал gmcs. Компилирует не правильно. Как с ним бороться не знаю. Если компилировать в MS VS 2008, а потом запускать под Mono, то нормально работает.
На маке со свежеустановленной моно - все правильно. Хоть dmcs, хоть gmcs.
$ gmcs --version
Mono C# compiler version 2.10.9.0
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

Губанов Сергей Юрьевич

  • Hero Member
  • *****
  • Сообщений: 590
    • Просмотр профиля
    • Домашняя страница
Re: Неархитектурная задачка
« Ответ #42 : Май 16, 2012, 12:44:41 pm »
Mono C# compiler version 2.10.9.0
У меня Mono JIT compiler version 2.6.7 (Debian 2.6.7-5). Значит скорее всего дело в версии.

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Неархитектурная задачка
« Ответ #43 : Май 16, 2012, 12:48:20 pm »
Mono C# compiler version 2.10.9.0
У меня Mono JIT compiler version 2.6.7 (Debian 2.6.7-5). Значит скорее всего дело в версии.
Проверил на сервере (на котором сий форум крутится) - результаты такие:
1) Программа собранная на макоси (с помощью моно) там работает нормально.
2) Программа собранная на самом серваке - там не работает.
3) Программа там работает быстро - 0.15 секунды.

Версия компилятора там такая:
# gmcs --version
Mono C# compiler version 2.6.7.0
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

Губанов Сергей Юрьевич

  • Hero Member
  • *****
  • Сообщений: 590
    • Просмотр профиля
    • Домашняя страница
Re: Неархитектурная задачка
« Ответ #44 : Май 16, 2012, 12:50:12 pm »
На моей тачке решение от vlad тоже работает примерно в два раза быстрее решения от Сергея.
0.312 против 0.68
Э-э-э, от рекурсии что ли попробовать избавиться?..  :) :) :) Как раз наверное в два раза и ускорится...