Вот код, который я написал для создания подзаговора 2 на 2.
Код представлен ниже:
import math
import numpy
import functools
import operator
from fractions import Fraction
import matplotlib.pyplot as plt
import pylab
from pylab import *
def nCk(n, k):
return int(functools.reduce(operator.mul,
(Fraction(n-i, i+1) for i in range(k)), 1))
Theta = 0.5 cList = numpy.arange(-5, 5, 1) NList = [5, 10, 100, 1000]
for i in list(range(len(NList))):
N = NList[i]
print(N)
dList = []
for c in cList:
print(c)
var = math.floor(float(N*Theta) + float(c*Theta*(1-Theta)*math.sqrt(N)))
dList.append(pow(0.5, N)*(sum(nCk(N, x) for x in range(var))))
print([1+math.floor(i/2), 1+i % 2])
# plt.subplot(4,1+math.floor(i/2),1+i%2)
# plt.plot(cList,dList)
# plt.title([1+math.floor(i/2),1+i%2])
subplot(4, 1+math.floor(i/2), 1+i % 2)
fig = plot(cList, dList)
# plt.savefig('C:/Users/Sumit_G/foo1.png')
pylab.savefig('C:/Users/Sumit_G/foo.png')
Однако вместо того, чтобы получить участок 2 на 2.
Я получаю фигуру, приведенную ниже:
for i,N in enumerate(NList):
. И есть функция scipy для комбинаций (scipy.misc.comb). И я считаю, что сумма комбинаций может быть упрощена (математически говоря) и так далее... - person Emilien   schedule 22.10.2015