Функции и модули

Какое-нибудь описание.

  • {o} — тема по Linux

  • <!> ­— необязательная тема

Домашнее задание

  • {i} — теоретическое задание

  • {*} — новая тема

  1. {i} Повторить свойства цикла и объектов-последовательностей (про последовательности есть в library reference

  2. {i} Прочитать Определение функций в учебнике (можно и следующую главу :) )

  3. На плоскости заданы своими координатами п точек. Создать массив размером п (п - 1), элементами которого являются расстояния от каждой из точек до п -1 других.
    1. При вводе вручную

      from math import *
      
      def size(m1,m2):
        "Расстояние от точки m1 до точки m2"
        return sqrt((m1[0]-m2[0])*(m1[0]-m2[0])+(m1[1]-m2[1])*(m1[1]-m2[1]))
      
      Dots=input()    # в формате (x1,y1), (x2,y2), ...
      
      M=[[size(m1,m2) for m1 in Dots if not m1 is m2] for m2 in Dots]
      
      for l in M:
        print l
    2. Точки задаются с помощью random

  4. Дано n и x, вычислить sin(x)+sin(x)2+sin(x)3+...+sin(x)n

    from math import *
    n,x = input()
    s=sin(x)
    ss,r=s,s
    
    for i in xrange(1,n):
      ss*=s
      r+=ss
    
    print r
  5. Составить алгоритм решения ребуса МУХА + МУХА + МУХА = СЛОН (различные буквы обозначают различные цифры, старшая — не 0).

    "В этом решении используется факт, что все буквы обоих слов различны"
    M,S,mul="MUHA","SLON",3
    
    def Same(n,w):
      'Есть ли одинаковые цифры'
      N=("0"*w+str(n))[-w-1:]
      for i in xrange(w-1):
        for k in xrange(i+1,w):
          if N[i]==N[k]:
            return True
      return False
    
    for m in xrange(1,min(10**len(S)/mul,10**len(M))):
      if Same(m,len(M)): continue
      s=m*mul
      if Same(m*10**len(M)+s,len(M+S)):
        continue
      print m, "*", mul, "=", s


CategoryClass CategoryVmsh

LecturesVMSH/2010-11-10 (последним исправлял пользователь FrBrGeorge 2010-11-17 19:42:56)