二进制 CSP 实例
Binary CSP instance
python 非常新,我正在尝试做一个二进制 CSP 实例,它根据用户想要的变量数量生成变量。因此,如果用户想要 4 个变量,它会生成 X1、X2、X3、X4,然后附加到列表中。我已经试过了,还是放不下
class CSP:
def __init__(self, variables):
self.variables = list(variables)
def get_variables(self):
return self.variables
class Map(CSP):
n = input("Enter number of variables: ")
for i in range(n):
vare = 'X' + 'i'
def __init__(self):
super().__init__(self._collect_variables())
def _collect_variables(self):
variables = []
variables.append(self.vare) #list the user appends to
def main():
Map()
if __name__ == '__main__':
main()
您的代码无法正常工作的原因很简单:它不会生成多个变量。取而代之的是,它更新单个变量 'vare'.
我应该按以下方式进行:
class Map(CSP):
self._vare = []
def __init__(self):
n = input("Enter number of variables: ")
for i in range(n):
vare.append ('X' + 'i')
super().__init__(self._get_variables())
def _get_variables(self):
return self._vare
python 非常新,我正在尝试做一个二进制 CSP 实例,它根据用户想要的变量数量生成变量。因此,如果用户想要 4 个变量,它会生成 X1、X2、X3、X4,然后附加到列表中。我已经试过了,还是放不下
class CSP:
def __init__(self, variables):
self.variables = list(variables)
def get_variables(self):
return self.variables
class Map(CSP):
n = input("Enter number of variables: ")
for i in range(n):
vare = 'X' + 'i'
def __init__(self):
super().__init__(self._collect_variables())
def _collect_variables(self):
variables = []
variables.append(self.vare) #list the user appends to
def main():
Map()
if __name__ == '__main__':
main()
您的代码无法正常工作的原因很简单:它不会生成多个变量。取而代之的是,它更新单个变量 'vare'.
我应该按以下方式进行:
class Map(CSP):
self._vare = []
def __init__(self):
n = input("Enter number of variables: ")
for i in range(n):
vare.append ('X' + 'i')
super().__init__(self._get_variables())
def _get_variables(self):
return self._vare