python苦戦中#2
コードをこうしてみると・・・
#!/usr/bin/env python
# -*- coding:utf-8 -*-
class algo:
def __init__(self,n,m):
self.data = []
def per(self,n):
x = n
while n > 0:
n = n - 1
x = x * n
self.data.append(x)
return result
def com(self,n,m):
a = n - 1
b = per(m)
c = b[0]
while m > 0:
n = n * a
a = a - 1
m = m - 1
d = n / c
self.data.append(d)
return result
def venn(n):
y = algo(n,1)
i = y[0]
n = n - 1
a = 1
while n > 0:
if a % 2 == 0:
b = algo(n,a)
x = b.p * b.c
i = i + x
n, a = n-1, a+1
else:
b = algo(n,a)
x = b.p * b.c
i = i - x
n, a = n-1, a+1
print i
print """
--------------------------------------------------------------------------------
Q. 1からnまでの数字を1個ずつ使う、n文字の順列のうち
「1が1番目になく、2が2番目になく・・・nがn番目にない」
ようなものはいくつあるか?
--------------------------------------------------------------------------------
"""
n = int(raw_input("nにあたる数を入力してください:"))
print """
--------------------------------------------------------------------------------
"""
print 'Answer is'
venn(n)
print """
--------------------------------------------------------------------------------
"""
エラーはこうなった。
Traceback (most recent call last):
File "venn.py", line 58, in
venn(n)
File "venn.py", line 28, in venn
i = y[0]
AttributeError: algo instance has no attribute '__getitem__'
これなら、調べれば出てきそうなので後もう少し頑張ります。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
class algo:
def __init__(self,n,m):
self.data = []
def per(self,n):
x = n
while n > 0:
n = n - 1
x = x * n
self.data.append(x)
return result
def com(self,n,m):
a = n - 1
b = per(m)
c = b[0]
while m > 0:
n = n * a
a = a - 1
m = m - 1
d = n / c
self.data.append(d)
return result
def venn(n):
y = algo(n,1)
i = y[0]
n = n - 1
a = 1
while n > 0:
if a % 2 == 0:
b = algo(n,a)
x = b.p * b.c
i = i + x
n, a = n-1, a+1
else:
b = algo(n,a)
x = b.p * b.c
i = i - x
n, a = n-1, a+1
print i
print """
--------------------------------------------------------------------------------
Q. 1からnまでの数字を1個ずつ使う、n文字の順列のうち
「1が1番目になく、2が2番目になく・・・nがn番目にない」
ようなものはいくつあるか?
--------------------------------------------------------------------------------
"""
n = int(raw_input("nにあたる数を入力してください:"))
print """
--------------------------------------------------------------------------------
"""
print 'Answer is'
venn(n)
print """
--------------------------------------------------------------------------------
"""
エラーはこうなった。
Traceback (most recent call last):
File "venn.py", line 58, in
venn(n)
File "venn.py", line 28, in venn
i = y[0]
AttributeError: algo instance has no attribute '__getitem__'
これなら、調べれば出てきそうなので後もう少し頑張ります。