Replies: 5 comments 20 replies
-
Thank you for your considerate message. I'm happy to consider comments, questions, and requests you may have, as well as requests for the same in the other direction. To be frank, however, I would stop short of accepting direct contributorship at this time; as you allude to, this project is in part an outlet for my introversion. Here are my objectives for the project within the next six months:
|
Beta Was this translation helpful? Give feedback.
-
Howdy again! I have a pending branch on |
Beta Was this translation helpful? Give feedback.
-
Oh hi there! I mentioned in posita/dyce#10 that we'd strayed off topic from Lea. Perhaps this would be a good place to continue that conversation? Last night I had the inspiration for how to improve my NdX drop/keep method. As I mentioned in the other discussion, I had developed a reasonably efficient algorithm for keeping dice at either end of a pool, but keep-middle/slicing had me stumped. I came up with a new approach last night. My insight was that you can enumerate all combinations of the kept dice, and for each such result there's enough information to efficiently count the all of the lower and higher dice. For example, to find the PMF for 9d6km3 (keep middle 3):
My first attempt was hilariously bad. I had missed some subtleties around counting the boundary dice. Take the (3, 5, 5) example again. The math for counting the dice < 3 is different from the dropped dice == 3. I got it sorted out tonight, though, and even made it work for non-uniform dice. The new algorithm computes 600d6km1 in five seconds, whereas previously it could only handle about 40d6 in that time. I think the algorithm has polynomial complexity. Usually the bulk of the computation time goes to the enumeration of the NdX kept dice, which I think is is O(XN^something). However, it's also linear in the number of dice dropped at each end, O(H*L), so finding dice in the middle is a lot more expensive than at the ends. I set up icepool for head-to-head comparison on the same machine. My new algorithm computes 600d6km1 in 5.1s whereas icepool does it in 2.4s with (As an aside, does the NdXkM notation bother anybody else? It just seems wrong to interrupt the pool-counting bits with the die descriptor. I fooled around a bit with notations like MkNd6 that mimic the MkN shorthand from games like L5R. I really like how that alternative ends with the bit you're actually going to add up, like M-keep-Nd6. However, I couldn't find any other prominent notation system that grouped the dice-counting stuff together, so maybe it's just me?) |
Beta Was this translation helpful? Give feedback.
-
I'm tempted to experiment with PMFs implemented as multisets and subtyped from Set instead of Mapping. The Mapping API has a bunch of annoying quirks that get in the way when you want to use the keys as "values" and the values as weights, starting with the fact that Mapping is covariant in the value type but not the key type. I'm mostly hesitant because the Set API has its own quirks, and I'm not sure that they're any better. |
Beta Was this translation helpful? Give feedback.
-
My project is currently in limbo while I try to settle a name dispute. I went to release an alpha version about a month ago & found that somebody was squatting on the Unfortunately, that completely blocks the PEP 541 process for abandoned projects. I might still be able to claim ownership if PyPI determines that the project is invalid because it's "name squatting (package has no functionality or is empty)." I guess I'll wait out the rest of the six-week notice period to see if the current owners actually bother to upload a package. If not, I might file an official PEP 541 request to declare the project invalid and transfer ownership to me. In the meantime, I need to start thinking of alternate names. I've found a few possibilities that are still available, but nothing that I like quite as much as |
Beta Was this translation helpful? Give feedback.
-
Some explorations are best done solo, but I feel like there's at least room to ponder whether you and I should collaborate. I don't know precisely what that might look like, but it feels like our outlooks and skillsets are complimentary. If you're interested in exploring further, let me know. If not, no judgment whatsoever.
Beta Was this translation helpful? Give feedback.
All reactions