Прикреплённый файл «content_gen.py»
Загрузка 1 #!/usr/bin/python
2 # coding: utf-8
3 '''
4 Вводится список вида
5 Мука Хлеб
6 Соль Хлеб
7 Вода Хлеб
8 Хлеб Бутерброд
9 Масло Бутерброд
10 Сыр Бутерброд
11 Бутерброд Завтрак
12 Чай Завтрак
13 ...
14 описывающий, как нечто собирается из составных частей.
15
16 Генератор списка (названия берутся из __builtins__ :)'''
17
18 import sys
19 from random import shuffle, randrange, randint, random, choice
20 DENSITY=0.3
21 if len(sys.argv)>1: DENSITY=float(sys.argv[1])
22
23 def gen(Terms, fault=0.0):
24 shuffle(Terms)
25 nathoms=randint(len(Terms)/5, 3*len(Terms)/5)
26 Athoms,Things=Terms[:nathoms],Terms[nathoms:]
27 Cont={}
28 for a in Athoms: # из каждого атома что-то состоит
29 Cont.setdefault(choice(Things),set([])).add(a)
30 for i in xrange(nathoms,len(Terms)): # добавим детали к вещи
31 for j in xrange(randrange(len(Terms)/3)): # количество деталей
32 # пренебрежём совпадением randrange(i)
33 Cont.setdefault(Terms[i],set([])).add(Terms[randrange(i)])
34 if fault>random(): # Переставим названия объектов
35 shuffle(Things)
36 Cont=dict(zip(Things,Cont.values()))
37 return Cont
38
39 C=gen(dir(__builtins__)[-40:], DENSITY)
40 for k,v in C.items():
41 for e in v:
42 print e,k
43 # Для задачи
44 print C.keys()[-1]
Прикреплённые файлы
Для ссылки на прикреплённый файл в тексте страницы напишите attachment:имяфайла, как показано ниже в списке файлов. Не используйте URL из ссылки «[получить]», так как он чисто внутренний и может измениться.- [получить | показать] (2011-09-26 11:35:28, 1.0 KB) [[attachment:Sav_2_ sostav_all.py]]
- [получить | показать] (2011-09-26 11:35:28, 2.0 KB) [[attachment:content.py]]
- [получить | показать] (2011-09-26 11:35:28, 1.6 KB) [[attachment:content_gen.py]]
- [получить | показать] (2011-09-26 11:35:28, 1.0 KB) [[attachment:lab.py]]
- [получить | показать] (2011-09-26 11:35:28, 4.4 KB) [[attachment:lab_gen.py]]
Вам нельзя прикреплять файлы к этой странице.