Re: Enumerating all 3-tuples (Posting On Python-List Prohibited)
Lawrence D’Oliveiro writes: > On Thursday, March 15, 2018 at 2:56:24 PM UTC+13, Ben Bacarisse wrote: >> >> Lawrence D’Oliveiro writes: >> >>> On Wednesday, March 14, 2018 at 2:18:24 PM UTC+13, Ben Bacarisse wrote: >>> Lawrence D’Oliveiro writes: The original problem -- triples of natural numbers -- is not particularly hard, but the general problem -- enumerating n-tuples of some sequence -- is more interesting because it is a bit harder. >>> >>> It’s not harder--it’s exactly the same difficulty. You iterate the >>> naturals, then interpose a function mapping them onto the set that you >>> really want to use. >> >> Yes, I said exactly that a couple of messages ago. > > I see. So you said it is a bit harder, and you also said it’s not > harder at all. Got it. Yes, I was not clear. It was the point about mapping from a solution that uses the natural numbers that's I mentioned before. The "bit harder" comes from generalising to n-tuples. (I get the feeling I should apologise for something because I think I have annoyed or irritated you. I'm sure I don't always get the right tone but I really hope I've not been rude. I'm sorry if I have been.) -- Ben. -- https://mail.python.org/mailman/listinfo/python-list
Re: Enumerating all 3-tuples (Posting On Python-List Prohibited)
Lawrence D’Oliveiro writes: > On Wednesday, March 14, 2018 at 2:18:24 PM UTC+13, Ben Bacarisse wrote: >> Lawrence D’Oliveiro writes: >> >> The original problem -- triples of natural numbers -- is >> not particularly hard, but the general problem -- enumerating n-tuples >> of some sequence -- is more interesting because it is a bit harder. > > It’s not harder--it’s exactly the same difficulty. You iterate the > naturals, then interpose a function mapping them onto the set that you > really want to use. Yes, I said exactly that a couple of messages ago. -- Ben. -- https://mail.python.org/mailman/listinfo/python-list
Re: Enumerating all 3-tuples (Posting On Python-List Prohibited)
Lawrence D’Oliveiro writes: > On Tuesday, March 13, 2018 at 1:58:48 PM UTC+13, Ben Bacarisse wrote: >> Of course you can always generate n-tuples of N and then map these to >> n-tuples of the intended sequence but that seems inelegant. > > This whole discussion seems to be going off on esoteric, irrelevant > tangents. The problem was not that hard to solve. Sure, but that's one thing that makes Usenet (and email lists) interesting. The original problem -- triples of natural numbers -- is not particularly hard, but the general problem -- enumerating n-tuples of some sequence -- is more interesting because it is a bit harder. -- Ben. -- https://mail.python.org/mailman/listinfo/python-list
Re: Enumerating all 3-tuples (Posting On Python-List Prohibited)
On Sun, 11 Mar 2018 01:40:01 +, Ben Bacarisse wrote: > I'm sure deep recursion is not needed, it's just tricky translating from > a lazy language when one is not familiar with all the iterator > facilities in Python. For example, I couldn't find an append operation > that returns an iterable. The Python iterator protocol is intentionally lightweight, so there's no "append" operation and + is not supported. But you can call it = itertools.chain(it, iterator2) It's not often that I think Ruby's ability to monkey-patch arbitrary objects including built-ins is a good idea, but the ability to allow iterator+iterator is *almost* one of those times. -- Steve -- https://mail.python.org/mailman/listinfo/python-list
Re: Enumerating all 3-tuples (Posting On Python-List Prohibited)
Lawrence D’Oliveiro writes: > On Sunday, March 11, 2018 at 2:40:16 PM UTC+13, Ben Bacarisse wrote: >> It would be nice to avoid relying on any value-based ordering. > > I don’t see why. The set of elements has to have the same cardinality > as the set of natural numbers, after all. Why not take advantage of > that? Maybe we are saying the same thing? The elements from which the tuple members are drawn need only be a sequence defined by a successor function. The values themselves need have no ordering nor, indeed, have any of the arithmetic properties of N. Of course you can always generate n-tuples of N and then map these to n-tuples of the intended sequence but that seems inelegant. -- Ben. -- https://mail.python.org/mailman/listinfo/python-list
Re: Enumerating all 3-tuples (Posting On Python-List Prohibited)
Lawrence D’Oliveiro writes: > On Sunday, March 11, 2018 at 3:24:05 AM UTC+13, Ben Bacarisse wrote: >> Unfortunately my Python is not up to using iterators well enough to >> avoid a "maximum recursion depth exceeded" error. > > My solution only needed recursion up to a depth equal to the length of > the tuples. The ordering is done based on the maximum value of any > element of the tuple. I'm sure deep recursion is not needed, it's just tricky translating from a lazy language when one is not familiar with all the iterator facilities in Python. For example, I couldn't find an append operation that returns an iterable. It would be nice to avoid relying on any value-based ordering. There is inevitably an order that comes from the iterable whose elements are being paired, trippled or whatever, but that's all that's really required for a solution. -- Ben. -- https://mail.python.org/mailman/listinfo/python-list