Hacker News new | past | comments | ask | show | jobs | submit login
White Elephant is surprisingly effective (bobbiec.github.io)
64 points by bobbiechen 4 months ago | hide | past | favorite | 20 comments



What my family has adopted since around eight years, is the practice of everyone buying themselves a present they really like and wrapping it up.

They all get put under the tree and you unwrap them together.

The surprise is still there because we all suck, more or less, at giving perfect presents even to people we know since years.

So everyone is always a bit surprised about the presents everyone bought for themselves.

You also save an insane amount of money and considerably reduce or actually remove the stress of present-buying before Xmas.

What this leads to, over time, is that you understand much better what everyone likes.

And then, randomly, throughout the year, when you see something that you now understand someone will really like, you buy it and stash it as the bday present for that person.

I.e. only positive outcomes.

The above approach excludes kids of of course -- they still get presents from everyone.


This is really nice! I didn't mention in the post, but my family friends originally switched from a Secret Santa for the kids in the group to White Elephant, because as people got older it became much harder to buy them things they like.

I think your approach might also help people learn what they like themselves - within my family, the answer to "What do you want for your birthday?" is almost always, "I don't know." Will suggest it!


I keep a wishlist of things I want, and I share that with the family. My wife gets a different wishlist, for the more expensive things.

This year, I put a lot of much more varied stuff on both wishlists that I plan on buying for myself, even if I don't get them as Christmas or birthday gifts. IMO, I should have been doing that all along.

My wishlist is on Amazon, but you could keep one anywhere that you like.


> What my family has adopted since around eight years, is the practice of everyone buying themselves a present they really like and wrapping it up.

This is so much better than any other alternative. The only times I got something I wanted on secret santa was when we used a site to add things we would like to get, and I got the book I asked for. But then... what's the point of the game? Also, Trying to find something that fits the budget and it's not too low, etc... I end up not getting something that I _really_ want,


Love the ingenuity and thought put in to this, however it only applies to white elephant exchanges done by computers.

People do not make the same decisions as a program, and will often make choices such as stealing a gift to troll a friend, or letting someone keep a gift they actually want to steal because they think it’s the nice thing to do.

Also, almost every white elephant I’ve ever been involved in has a steal limit - either per gift or per person - which completely throws these results off. This limit is usually because one or two gifts are often universally seen as ‘good’ with the rest seen as jokes or fillers (ref. the scary accurate white elephant episode of The Office with the iPod).


> Also, almost every white elephant I’ve ever been involved in has a steal limit - either per gift or per person - which completely throws these results off.

The rules used for the simulations in the article included a limit of 3 steals per item.


There's another elephant in the room: can we use this to distribute tickets to a team effectively?

I can see it being useful any time there are issues nobody wants to handle. Backlog grooming seems to stand out as a prime use case.


This is such a fun idea! Definitely going to try this next time I’m on a large enough team / teams, for a bit of holiday fun. I imagine it’s kinda silly with 4 people.


Inverse white elephant? Push those cursed backlog tickets back onto your team instead of stealing the ones you like


I just said look I can't figure it out. I tried but I couldn't do it. If someone else wants to try, please be my guest and told the team I was removing my name from the ticket.


Happy new year HN! My post here analyzes 80,000 simulated games of White Elephant for 2 to 9 players, and finds that it's pretty good at distributing gifts to people who value them. Source code available here: https://github.com/bobbiec/white-elephant


The core inefficiency of white elephant is the gifts themselves are often not very appealing in the first place — a perfectly distributed set of shit gifts are still shit


Yeah look what happened when Michael Scott forced everyone to play (though he called it Yankee Swap). Everybody hated it! Except Pam and Dwight, but they got Jim's in-joke gift and the brand new iPod respectively.


Such a classic episode


>quicksort and mergesort are very inhuman sorting algorithms; people usually do something like insertion sort in real life (perhaps with a round of radix/bucket sort initially, if there are a lot of items), since the merge and partition operations are very unnatural. Does anyone know if there's a name for this concept of a human-implementable algorithm?

I'm also interested in this. Is anyone aware of further reading on e.g. what sorting algorithm a person is likely to use when arranging a hand of playing cards? I'm curious what algorithms we apply in everyday life subconsciously.

Related: A few years ago I had a try at making a "human-friendly" sorting algorithm, that would ask the user a series of "this or that" questions to help them sort a list by preference[0]. I didn't want to use straight up MergeSort or QuickSort, since those would often lead to asking about the same item several times in a row. Instead, it randomly chooses items to compare, and accounts for transitivity (if a>b and b>c, assume a>c) to limit redundant comparisons.

[0] https://github.com/TimH98/HumanSort/blob/master/humansort.py - forgive the lack of documentation :)


There must be a card game that uses a White Elephant style mechanism — players able to take cards from others or somesuch.


The stuff with the random set of preferences looks a lot like ranked choice voting. I think you can use a Condorcet method where the "candidates" are the possible assignments of gifts to people (but an individual's ranking depends only on their gift). It would be interesting to see how White Elephant compares to e.g. the https://en.wikipedia.org/wiki/Schulze_method. Of course distributing gifts by filling out a preference form of your ranked choices isn't very fun...


The problem of finding the gift allocation with the highest sum of preferences is known as the Assignment Problem, a.k.a. finding a maximum-weight matching in a bipartite graph. Although brute force takes time proportional to the factorial of the number of players, this problem can be solved optimally in O(n^3) time using the Hungarian Algorithm: https://en.wikipedia.org/wiki/Hungarian_algorithm. This would mean you could optimally solve instances with a few hundred players.


Well done OP! This is the kind of analysis I love to encounter on HN, as this is a question I've definitely thought about before.

> Each player has a different random set of preferences for those gifts, ranging from 0 to 100 (inclusive).

This is my biggest point of criticism with the methods, as it's completely implausible and the excellent results of White Elephant relative to the best distribution are probably at least partially the result of this assumption.

The first problem is what another commenter called "shit gifts", gifts that are relatively interchangeable and aren't at the top of anyone's preferences. For example, two people in my gift exchange this year stopped at the gas station on the way to the party and bought ~$25 worth of scratch-offs. The only way you'd want that is if you disliked almost every other gift. There are also usually one or two novelty items that almost no one wants.

There's also (on the other end) "gold gifts", gifts that are really thoughtful or purchased by someone who ignored the price limit. These gifts will be at the top of most people's preferences, but usually not everyone's.

The middle category of gifts is the one where there is a true mix of preferences, but they are still going to be significantly non-random. Some gifts will be more towards the top of everyone's preferences, but with significant dissenters who don't want them at all. Others will be agreed by nearly everyone to be "middling" gifts. And so on. I think you need to capture something about this complexity in your model of preferences.

One consequence of all this is that stealing lacks some of the obvious benefits it has in the random model. For example, someone who opens a gift and is then stolen from tends to benefit in the random model, because the random preferences of the person who stole it reflect nothing about how the recipient valued the gift. On the contrary (which I have observed in real life), people who are stolen from are frequently disappointed. That's because the preferences of the thief do reflect something about the true value of the gift as measured by the overall preferences of the group. Only the good gifts get stolen, and anyone with a bad gift never gets to steal.

Along with improvements to the preferences model, I'd be interested in seeing more alternative rules explored. I bet there are a bunch of alternative rulesets that generate better results, and also do better by the metric of satisfaction with the game itself, which is harder to measure. For example, I suspect the following ruleset does very well:

1. Choose a random ordering of the participants.

2. Everyone (in order) opens an unopened gift they choose from the pile.

3. Everyone (in order) may swap their gift with another participant's. Anyone swapped with may swap with someone else (and so on) before the order continues. Anyone who has already swapped on that turn may not be swapped with.


> the preferences of the thief do reflect something about the true value of the gift as measured by the overall preferences of the group. Only the good gifts get stolen, and anyone with a bad gift never gets to steal.

I think this is true.

But then doesn't

> Anyone swapped with may swap with someone else (and so on) before the order continues. Anyone who has already swapped on that turn may not be swapped with

load all the discomfort of the previous insight onto the last round of the game?

[Edit: might be a personal quirk, but I'd definitely swap for the lotto tickets. No awkward cheap stuff to tote home! Also, I wouldn't buy (negative expected rate of return) tickets for myself, but guaranteed positive return scratchers? That sounds like fun!]




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: