Страница 2 из 2
Re: Требуется инженер-программист
Добавлено: 30 апр 2011, 17:34
cyberone
Апочки. Кстати если уж об SQL речь, то может комбинации from dual с cross join на самих себя и тогда delphi не надо?
На python решил 1 человек. Неужели нас так мало? А Java считается самым популярным языком программирования.
Re: Требуется инженер-программист
Добавлено: 30 апр 2011, 18:39
Форумчанин
Dr.Martini писал(а):Если честно затрудняюсь придумать алгоритм без использования СУБД.
Может используете принципиально другой подход ?
у меня получается прмерно так :
1) Генерация всевозможных перестановок из 9 чисел от 1 до 9
2) Перекодировка в 1 четных и в 0 нечет
3) Избавляемся от повторений, оставшиеся - всевозможные комбинации.
4) Из всевозможных возвращаем выйгрышные для крестиков ( выполнение восемь условий равентсва соотве-х позиций единичке)
написать алгоритм вывода всех выигрышных ситуаций для крестиков без Систем Управления Базами Данных? сурьезно?
Re: Требуется инженер-программист
Добавлено: 30 апр 2011, 18:57
artfwo
cyberone писал(а):Java считается самым популярным языком программирования.
Да вроде как Си.
http://www.langpop.com/#normalized
Re: Требуется инженер-программист
Добавлено: 30 апр 2011, 19:21
Dr.Martini
Форумчанин писал(а):Dr.Martini писал(а):Если честно затрудняюсь придумать алгоритм без использования СУБД.
Может используете принципиально другой подход ?
у меня получается прмерно так :
1) Генерация всевозможных перестановок из 9 чисел от 1 до 9
2) Перекодировка в 1 четных и в 0 нечет
3) Избавляемся от повторений, оставшиеся - всевозможные комбинации.
4) Из всевозможных возвращаем выйгрышные для крестиков ( выполнение восемь условий равентсва соотве-х позиций единичке)
написать алгоритм вывода всех выигрышных ситуаций для крестиков без Систем Управления Базами Данных? сурьезно?
просто самое что первое пришло в голову это тупо перебор чисел, их проще в СУБД крутить,
ну если хочешь можно в не зависемости языка рекурсивный алгоритм :
процедура шаг(текущая_доска, игрок)
{
если(проверяем_доску_на_завершённость(текущая_доска))
{
массив_завершённых_досок.добавить(текущая_доска);
выход;
}
для каждой пустой ячейки:
{
текущая_доска : ставим в ячейку ход игрока;
шаг(текущая_доска, игрок.другой_игрок());
}
}
только будут дубликаты завершённых досок, надо будет потом дубликаты в конце убрать и всё
Re: Требуется инженер-программист
Добавлено: 01 май 2011, 08:43
cyberone
А если задачу упростить до уровня что в python есть List comprehension, а в Java есть Guava?
Re: Требуется инженер-программист
Добавлено: 01 май 2011, 20:43
cyberone
А как насчёт решения на C, раз уж он самый популярный? Там тоже будет красиво, не так как в python, но всё же.
Re: Требуется инженер-программист
Добавлено: 03 май 2011, 11:21
gil
cyberone писал(а):gil писал(а):УРА! МЕСТО МОЁ!
точки с запятой в питоне как-бы лишние, хотя и допустимые :). Если согласишься на мелочи на неполную занятость, то не вопрос :)
да я just for fun запостил такое решение. думаю, это и так видно :)
сейчас работа в Ростелеком настолько напряженная, что совмещать, увы, ничего не получится даже.
Re: Требуется инженер-программист
Добавлено: 03 май 2011, 16:29
cyberone
gil писал(а):да я just for fun запостил такое решение. думаю, это и так видно :)
сейчас работа в Ростелеком настолько напряженная, что совмещать, увы, ничего не получится даже.
Я и предложил тебе соответственно решению :). Твоя слава даёт тебе право написать любое решение :D
Re: Требуется инженер-программист
Добавлено: 06 май 2011, 13:17
gil
Код: Выделить всё
#!/usr/bin/python
from itertools import product
combos = [\
[1,1,1, 0,0,0, 0,0,0],\
[0,0,0, 1,1,1, 0,0,0],\
[0,0,0, 0,0,0, 1,1,1],\
[1,0,0, 1,0,0, 1,0,0],\
[0,1,0, 0,1,0, 0,1,0],\
[0,0,1, 0,0,1, 0,0,1],\
[1,0,0, 0,1,0, 0,0,1],\
[0,0,1, 0,1,0, 1,0,0]\
]
def check( field ):
i = 0
win_X = 0
if ( field.count(1) - field.count(2) < 0 or field.count(1) - field.count(2) > 1 ): return
for win_combo in combos:
result = map(lambda i,j:i*j, field, win_combo)
if (result.count(1) == 3): win_X = 1
if (result.count(2) == 3): return
if (not win_X): return
for cell in field:
if (i % 3 == 0): print
i += 1
print ( "_" if cell is 0 else "X" if cell is 1 else "O" ),
print
for field in product(range(3), repeat=9):
check(field)
а какие условия на неполную занятость?
Re: Требуется инженер-программист
Добавлено: 07 май 2011, 21:46
cyberone
Ввиду того что не использована list comprehension (я даже не знаю как это по-русски), сильно планку не завышай, думаю 3-4 часа в день.
Re: Требуется инженер-программист
Добавлено: 09 май 2011, 13:28
mase
cyberone писал(а):gil писал(а):да я just for fun запостил такое решение. думаю, это и так видно :)
сейчас работа в Ростелеком настолько напряженная, что совмещать, увы, ничего не получится даже.
Я и предложил тебе соответственно решению :). Твоя слава даёт тебе право написать любое решение :D
как вышку получит... устроит конкурс среди работодателей(где интересней задачи и з.п.)... а там и видели его... (
Re: Требуется инженер-программист
Добавлено: 09 май 2011, 18:47
cyberone
mase писал(а):
как вышку получит... устроит конкурс среди работодателей(где интересней задачи и з.п.)... а там и видели его... (
Частник всегда выйграет при условии полной занятости. Мне кажется, государство через год или два все-таки научится «покупать» услуги админов и «программистов», а не держать в штате чиновника.
Re: Требуется инженер-программист
Добавлено: 09 май 2011, 23:45
AlexS
cyberone писал(а):mase писал(а):
как вышку получит... устроит конкурс среди работодателей(где интересней задачи и з.п.)... а там и видели его... (
Частник всегда выйграет при условии полной занятости. Мне кажется, государство через год или два все-таки научится «покупать» услуги админов и «программистов», а не держать в штате чиновника.
)))
лет 5-10 минимум, в лучшем случае
Re: Требуется инженер-программист
Добавлено: 10 май 2011, 08:24
gil
mase писал(а):cyberone писал(а):gil писал(а):да я just for fun запостил такое решение. думаю, это и так видно :)
сейчас работа в Ростелеком настолько напряженная, что совмещать, увы, ничего не получится даже.
Я и предложил тебе соответственно решению :). Твоя слава даёт тебе право написать любое решение :D
как вышку получит... устроит конкурс среди работодателей(где интересней задачи и з.п.)... а там и видели его... (
думаю, для этого уеду на ПМЖ куда-нибудь. но это сравнительно не скоро (через ~ 4 года).