Difference between revisions of "Talk:770: All the Girls"

Explain xkcd: It's 'cause you're dumb.
Jump to: navigation, search
(Glaring typo. Others will certainly remain. (Oh, and I generally assume I'm gonna use Strict; and warnings;))
Line 4: Line 4:
 
Still, it's not like there is better algorithm. -- [[User:Hkmaly|Hkmaly]] ([[User talk:Hkmaly|talk]]) 10:02, 17 April 2013 (UTC)
 
Still, it's not like there is better algorithm. -- [[User:Hkmaly|Hkmaly]] ([[User talk:Hkmaly|talk]]) 10:02, 17 April 2013 (UTC)
  
sub BetterThanNothing ( my (@everyone,@m,@f,@o,@r,@Ps) = @_; while (my $person = shift @everyone) { push(@m, $person)&&next if _isMale($person); push(@f, $person)&&next if _isFemale($person); push @o, $person } my $priority =(@m>=@f)?[\@f,\@m]:[\@m,\@f]; while (@{$priority[0]}) { push @Ps, [splice(@{$priority[0]},rnd(@{$priority[0]}),1), splice(@{$priority[1]},rnd(@{$priority[1]}),1)] } } @r = (@m,@f,@o); while (@r>1) { push @Ps, [splice(@r,rnd(@r),1), splice(@r,rnd(@r),1)] } } @r && push @Ps, [(shift @r) x 2]; return @Ps } # Totally untested Perl for when you /really/ don't care too much... ;) [[Special:Contributions/31.110.88.49|31.110.88.49]] 04:34, 4 May 2013 (UTC)
+
sub BetterThanNothing { my (@everyone,@m,@f,@o,@r,@Ps) = @_; while (my $person = shift @everyone) { push(@m, $person)&&next if _isMale($person); push(@f, $person)&&next if _isFemale($person); push @o, $person } my $priority =(@m>=@f)?[\@f,\@m]:[\@m,\@f]; while (@{$priority[0]}) { push @Ps, [splice(@{$priority[0]},rnd(@{$priority[0]}),1), splice(@{$priority[1]},rnd(@{$priority[1]}),1)] } } @r = (@m,@f,@o); while (@r>1) { push @Ps, [splice(@r,rnd(@r),1), splice(@r,rnd(@r),1)] } } @r && push @Ps, [(shift @r) x 2]; return @Ps } # Totally untested Perl for when you /really/ don't care too much... ;) [[Special:Contributions/31.110.88.49|31.110.88.49]] 04:34, 4 May 2013 (UTC)

Revision as of 04:36, 4 May 2013

The reasons why this algorithm wouldn't work so well in producing stable marriages are

  • the people preferences may change (especially if they know someone better)
  • people may prefer not having marriage at all (when rejected by some of their choices)

Still, it's not like there is better algorithm. -- Hkmaly (talk) 10:02, 17 April 2013 (UTC)

sub BetterThanNothing { my (@everyone,@m,@f,@o,@r,@Ps) = @_; while (my $person = shift @everyone) { push(@m, $person)&&next if _isMale($person); push(@f, $person)&&next if _isFemale($person); push @o, $person } my $priority =(@m>=@f)?[\@f,\@m]:[\@m,\@f]; while (@{$priority[0]}) { push @Ps, [splice(@{$priority[0]},rnd(@{$priority[0]}),1), splice(@{$priority[1]},rnd(@{$priority[1]}),1)] } } @r = (@m,@f,@o); while (@r>1) { push @Ps, [splice(@r,rnd(@r),1), splice(@r,rnd(@r),1)] } } @r && push @Ps, [(shift @r) x 2]; return @Ps } # Totally untested Perl for when you /really/ don't care too much... ;) 31.110.88.49 04:34, 4 May 2013 (UTC)