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

Илья Ермаков

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


Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Неархитектурная задачка
« Ответ #16 : Май 14, 2012, 12:12:56 pm »
На тему "Sudoku Solver" на хаскельном сайте целая страничка есть:
http://www.haskell.org/haskellwiki/Sudoku
И вапще: https://www.google.com/search?q=sudoku+solutions+on+haskell
Ну, будет время, подумаю над этой задачкой, а то я уже забывать хаскелл стал... :(
to iterate is human, to recurse, divine

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

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Неархитектурная задачка
« Ответ #17 : Май 14, 2012, 03:38:53 pm »
На тему "Sudoku Solver" на хаскельном сайте целая страничка есть:
http://www.haskell.org/haskellwiki/Sudoku
И вапще: https://www.google.com/search?q=sudoku+solutions+on+haskell
Ну, будет время, подумаю над этой задачкой, а то я уже забывать хаскелл стал... :(
Я ж говорю - функцианальщиков хлебом не корми, дай только такую задачку решить и зачмырить императивщиков :-)
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

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

  • Hero Member
  • *****
  • Сообщений: 590
    • Просмотр профиля
    • Домашняя страница
Re: Неархитектурная задачка
« Ответ #18 : Май 14, 2012, 04:50:34 pm »
Работает за dt=1.66 секунды. Ответ выдаёт другой, но вроде тоже правильный:

302 546 718
419 730 256
675 812 034

853 104 627
041 627 385
267 358 401

534 071 962
126 483 570
780 265 143

Прикладываю исходник на C#.

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Неархитектурная задачка
« Ответ #19 : Май 14, 2012, 05:00:33 pm »
Если мне склероз не изменяет, правильно составленные первоначальные данные для судоку (не менее 17ти чисел) должны приводить к единственному решению.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

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

  • Hero Member
  • *****
  • Сообщений: 590
    • Просмотр профиля
    • Домашняя страница
Re: Неархитектурная задачка
« Ответ #20 : Май 14, 2012, 05:27:25 pm »
А стоп, в моей программе ошибка. В ответе числа должны быть 1..9, а у меня 0..8. Сейчас переделаю.

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

  • Hero Member
  • *****
  • Сообщений: 590
    • Просмотр профиля
    • Домашняя страница
Re: Неархитектурная задачка
« Ответ #21 : Май 14, 2012, 05:33:20 pm »
Переделал. Теперь ответ такой же как у всех. Выполняется за 0.16 секунды.

Прилагаю исходник на C#

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

  • Hero Member
  • *****
  • Сообщений: 590
    • Просмотр профиля
    • Домашняя страница
Re: Неархитектурная задачка
« Ответ #22 : Май 14, 2012, 06:45:05 pm »
Совсем чуток оптимизировал. На i7 3770K выполняется за 0.107 секунды.

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Неархитектурная задачка
« Ответ #23 : Май 15, 2012, 01:54:48 pm »
Сергей, а какой смысл писать unsafe-программы на сишарпе?
Не лучше ли сразу на Сях или С++?
to iterate is human, to recurse, divine

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

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Неархитектурная задачка
« Ответ #24 : Май 15, 2012, 02:17:17 pm »
Сергей, а какой смысл писать unsafe-программы на сишарпе?
Не лучше ли сразу на Сях или С++?
А какой будет, для Сергея профит с написания их на Сях или на С++? С .net оно интерфейситься будет хреново, грамматика сложнее, семантика тем более, а высокоуровневые возможности Си и, тем более, С++ Сергей все равно не использует в unsafe программах.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

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

  • Hero Member
  • *****
  • Сообщений: 590
    • Просмотр профиля
    • Домашняя страница
Re: Неархитектурная задачка
« Ответ #25 : Май 15, 2012, 03:33:53 pm »
Сергей, а какой смысл писать unsafe-программы на сишарпе?
Чтобы работало в 20 раз быстрее чем у Ермакова.
Не лучше ли сразу на Сях или С++?
Так я фактически на Си и написал. Только скомпилировал компилятором C#.

Ансэйфный C# это и есть тот же Си, но только чуток побезопаснее, помодульнее, да и просто по приличнее, к тому же компилируется на несколько порядков быстрее.

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Неархитектурная задачка
« Ответ #26 : Май 15, 2012, 03:43:33 pm »
Сергей, а какой смысл писать unsafe-программы на сишарпе?
Чтобы работало в 20 раз быстрее чем у Ермакова.
Не лучше ли сразу на Сях или С++?
Так я фактически на Си и написал. Только скомпилировал компилятором C#.

Ансэйфный C# это и есть тот же Си, но только чуток побезопаснее, помодульнее, да и просто по приличнее, к тому же компилируется на несколько порядков быстрее.
Или писал на паскале, или на модуле :-) Есть уйма языков с близкой семантикой. Вообще, ансейфный C# больше всего похож пожалуй на модулу-2 а не на Си. А фигурные там скобочки или же begin/end роли не играет.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля
Re: Неархитектурная задачка
« Ответ #27 : Май 15, 2012, 06:52:13 pm »
Чтобы работало в 20 раз быстрее чем у Ермакова.

Сергей Юрьевич из-за работы в телекоммуникационной сфере стал заниматься мерянием просто на каждом шагу :)

Во-первых, мне бы его i7. У меня ноут с Athlon II X2 P340.
Во-вторых, когда откроем исходники, будет понятно, почему моя программа не конкурент Сергею Юрьевичу по длине..... по быстродействию... :)

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Неархитектурная задачка
« Ответ #28 : Май 15, 2012, 07:08:40 pm »
Совсем чуток оптимизировал. На i7 3770K выполняется за 0.107 секунды.
Гм. У меня эта программа ничего не запрашивает и выдает странное:
020000000
000000000
000000000
000000000
000000000
000000000
000000000
000000000
000000000
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

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

  • Hero Member
  • *****
  • Сообщений: 590
    • Просмотр профиля
    • Домашняя страница
Re: Неархитектурная задачка
« Ответ #29 : Май 16, 2012, 10:28:14 am »
Сергей Юрьевич из-за работы в телекоммуникационной сфере стал заниматься мерянием просто на каждом шагу :)
Немного не так. Маниакальная привычка писать только быстрые программы у меня зародилась на почве жутко тормозных игр Альфа Центавра и Цивилизация 3. В начале игры (или на маленькой карте) они работают быстро, а потом, когда городов и юнитов становится много они начинают ужасно-ужасно-ужасно тормозить  :'( :'( :'(. Кстати даже i7 3770K разогнанный в турбо бусте до 4200MHz не спасёт если в Цивилизаци3 взять огромную карту 256*256 с порядка 250 городами -- т о р м о з и т  в с ё  р а в н о. Сиду Мейеру за Цивилизацию надо Нобелевскую премию дать, но за тормозную реализацию тот час же её лишить (с позором).