понедельник, 31 января 2011 г.

Python - генерация случайного числа с заданной вероятностью

Представим, что нам потребовалось создать на Питоне генератор случайных чисел, который выводит 1 или 0, причем 1 он выводит с вероятностью 0,2.
Это можно сделать следующим образом:
>>> import random
>>> for i in range(20):
...     x = random.random()
...     if x <= 0.2:
...             print 1
...     else:
...             print 0
...
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
Что мы здесь сделали?
Во первых, первой строкой подключили модуль random, затем сгенерировали случайное число с плавающей точкой в пределах от 0 до 1. В зависимости от того, меньше это число 0.2, или больше, мы вывели 1 или 0. Таким образом, задачу можно считать выполненной.

Python - сложение строк или конкатенация

В питоне складывать строки очень просто, вот примеры, из которых все понятно:
Пример №1
>>>print 'Привет! ' + 'Как дела?'
Привет! Как дела?
Пример №2
>>> a = 'Хорошо'
>>> b = ' А у тебя как?'
>>> c = a + b
>>> print c
Хорошо А у тебя как? 
Пример №3 (c преобразованием числа  в строку)
 >>> x = 12
>>> y = 6
>>> print '12 * 6 = '+str(x*y)
12 * 6 = 72

понедельник, 17 января 2011 г.

Устанока OpenTTD в Debian или Ubuntu

Решил я поставить себе OpenTTD на свой ноутбук с Debian Squeeze. Так как компилировать и ставить из исходников - это не Debian-way, то выполнил следующую команду:
$ sudo aptitude install openttd
Поставился и сам OpenTDD, и нужные зависимости типа liblzo2-2 и т.д.
Всё, OpenTTD установлен на компьютер, можно с удовольствием поиграть, запустив его командой
$ openttd
Получаем окно игры:

Linux - подсчет количества определенных символов в строке

Делается сабж вот такой командной:
echo -n $string | sed s/[^SYMBOL]//g | wc -c
Где $string - наша строка, SYMBOL - тот самый символ, количество которых мы хотим посчитать.
Например:
$ echo -n aaabac | sed s/[^a]//g | wc -c
4