9
Task
Write a function/program which takes
n
as a parameter/input and prints/returns the number of topologies (which is demonstrated below) on the set{1,2,...,n}
.
Definition of Topology
Let X be any finite set, and assume that T, which is subset of the power set of X (i.e. a set containing subsets of X), satisfy these conditions:
X and the empty set are in T.
If two set U and V are in T, then the union of those two sets are in T.
If two set U and V are in T, then the intersection of those two sets are in T.
...then T is called the topology on X.
Specifications
Your program is either:
- a function which takes
n
as a parameter - or a program which inputs
n
and prints or returns the number of (distinct) topologies on the set
{1,2,...,n}
.- a function which takes
n
is any non-negative integer which is less than 11 (of course there's no problem if your program handles n bigger than 11), and the output is a positive integer.Your program should not use any kinds of library functions or native functions which calculates the number of topology directly.
Example input (value of n) : 7
Example output/return : 9535241
You may check your return value at here or here.
Of course, shortest code wins.
The winner is decided, however, I may change the winner if shorter code appears..
You can look here for the answer.
– Ross Millikan – 2014-02-27T21:18:04.757Does it have to give results this century, or is a proof of correctness good enough? – Peter Taylor – 2011-06-08T08:30:26.680
@Peter In fact, I have no idea how long it'll take. Therefore proof of correctness of the program is good enough, but still the program should give a result in a reasonable time if n is small, like 4~5. – JiminP – 2011-06-08T08:57:01.763
@JiminP, it seems that computing it for n=12 was worth a paper back in the day, and there isn't a known formula. For 4 or 5 I suspect it's doable in a few minutes by brute force. – Peter Taylor – 2011-06-08T09:13:40.383
Is the improper subset of 2^X also a topology? – FUZxxl – 2011-06-08T21:03:44.307
@FUZxxl : Yes. I think that's called the discrete topology.
– JiminP – 2011-06-09T00:50:20.043@Peter : Oops, I thought there was a formula, but that wasn't a 'complete' formula.. – JiminP – 2011-06-09T00:52:14.923