Страница 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 года).