Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re: Table shuffling challenge

by protist (Monk)
on Aug 23, 2013 at 20:48 UTC ( #1050733=note: print w/ replies, xml ) Need Help??


in reply to Table shuffling challenge

I would advise to avoid actually removing elements.

Instead have multidimensional hash of column and row.

You can use this multidimensional hash to record

whether a given index has already been supplied before.

Note the use of a closure to make the function stateful.

That is the reason for the reset_hash function.

You must be able to reset the hash for another run.

## just a sketch my %columns; ## to associate columns with ## column numbers # ## $columns{1} should return ## a reference to the ## first column list { ## closure cleanliness my $seen; ## keeps track of what we have seen ## used to reset hash within closure between runs sub reset_hash{ undef $seen } ##function expects column number sub find_and_dont_actually_remove_but_say_we_did{ my $column_number = shift; my $column = $columns{$column_number}; ## keeping as a referen +ce to ## avoid obscene copy-p +asta my $rand; until (not $seen->{$column_number}->{$rand = int(rand(@$column +))}){ ## nothing to see here } $seen->{$column_number}->{$rand} = "looks familiar"; return $column->[$rand] } }


Comment on Re: Table shuffling challenge
Download Code
Re^2: Table shuffling challenge
by protist (Monk) on Aug 23, 2013 at 21:02 UTC

    Ah just noticed you need to do this UNTIL EMPTY.

    My method could be inefficient then as it may take

    forever to guess the last few indices. There are

    many other approaches, but I am going to lunch soon. :D

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1050733]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (8)
As of 2014-08-22 11:47 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (156 votes), past polls