Re: How to Map[ f[x,y], {y}]?
- To: mathgroup at smc.vnet.net
- Subject: [mg79227] Re: How to Map[ f[x,y], {y}]?
- From: Januk <ggroup at sarj.ca>
- Date: Sat, 21 Jul 2007 04:33:28 -0400 (EDT)
- References: <f7hqcv$ph7$1@smc.vnet.net>
Hi, I'm not sure I understand your question. Are both players drawn from the same strategy list? There are many possibilities of how to do what you want: p1strategy = {17, 3, 17, 3, 17, 3, 17, 3, 17, 3}; p2strategy = RandomInteger[{1,100}, 11]; Probably the simplest is to use a Table command. (* Mathematica Version 6.0 *) Table[ score[p1, p2], {p1, p1strategy}, {p2, p2strategy} ] (* All Mathematica Versions *) Table[ score[ p1strategy[[i]], p2strategy[[j]] ], {i, Length[p1strategy]}, {j, Length[p2strategy]} ] Alternatively, you could make a list with all the combinations of strategies and then apply your function. There are multiple ways to apply your function to this list: (* Use Apply in shorthand *) score @@@ Tuples[{p1strategy, p2strategy}] (* Use ReplaceAll in shorthand *) Tuples[{p1strategy, p2strategy}] /. {{x__?NumericQ} :> score[x]} If you prefer the table format, but want something a bit more functional, you could try: Function[p1, score[p1, #] & /@ p2strategy] /@ p1strategy Hope that helps. On Jul 17, 3:16 am, AngleWyrm <anglew... at yahoo.com> wrote: > Hi, > I've got two lists of integers representing player strategies in a game. > > I've defined a score function which counts the number of pair-ups where > the player came out ahead, like so: > > strategy = {17, 3, 17, 3, 17, 3, 17, 3, 17, 3}; (* player's plan *) > score[enemy_]:= Count[strategy - enemy, x_/;x>0]; > > and I get a total score by comparing a player's strategy against a list of > possible enemy strategies: > totalScore = Map[score, strategies] //Sort //Tally > ListLinePlot[totalScore,{Filling->Axis}] > > What I want to do next is create a new version of the scoring function, > with an interface like: score[p1_, p2_]. Then I want to Map each player's > strategy against the enemies, and see how they do. > > Where I run into problem is how do I Map score[p1,p2] so that p2 is drawn > from a list of strategies? Something like Map[ score[p1,p2], strategyList]. > > Second question is: Is it possible to somehow thread both across the > strategyList? > > -- > > AngleWyrm