16 ноября 2012 г.

Полезные функции, 1 часть


Помощь школьникам или же математикам

Небольшое вступление, насчет данной темы: 
В теме "Функции помощники", я буду выкладывать готовые решение каких либо задач в виде функций на языке Python. Можете писать свои задания в комментариях. Итак начинаем.

Сегодня просмотрим функции факториала и поиска минимума.
Нахождение Факториала:
как это выглядит в математике :-)
5! = 5*4*3*2*1

def fact(x):   
    if x==0:
        return 1
    else:
        return x*fact(x-1)


c=fact(5)
print(c)

Второй способ

def fact(x):
    return 1 if x==0 else reduce(lambda x,y:x*y,xrange(1,x+1))


c=fact(5)
print(c)


результат будет равен 120
-----------------------------------------------------------------

Нахождение минимума:
Функция должна находить минимальное значение из множества аргументов любого типа.

1-й способ:

def min1(*args):
    res = args[0]
    for arg in args[1:]:
        if arg < res:
            res = arg
 return res

2-й способ:

def min2(first, *rest):
    for arg in rest:
        if arg < first:
            first = arg
    return first

3-й способ: 
def min3(*args):
    tmp = list(args)   # Или, в Python 2.4+: return sorted(args)[0]
    tmp.sort()
    return tmp[0]

print(min1(3,4,1,2))
print(min2(“bb”, “aa”))
print(min3([2,2], [1,1], [3,3]))

результат:

1
aa
[1, 1]

2 комментария: