Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2008

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Relational Operators and Random Integers

  • To: mathgroup at smc.vnet.net
  • Subject: [mg90346] Re: [mg90305] Relational Operators and Random Integers
  • From: DrMajorBob <drmajorbob at att.net>
  • Date: Sun, 6 Jul 2008 07:21:29 -0400 (EDT)
  • References: <7158674.1215250947191.JavaMail.root@m08>
  • Reply-to: drmajorbob at longhorns.com

You TOLD Mathematica to recompute x randomly every time it's mentioned  
(look up SetDelayed or ":=") and then you mentioned it four times.

Try instead

x = RandomChoice[{1, 2, 3}];
x
Which[x == 1, 1, x == 2, 2, x == 3, 3]

3

3

or

x := RandomChoice[{1, 2, 3}];
Switch[x, 1, 1, 2, 2, 3, 3]

2

In both examples, x is computed only once.

Bobby

On Sat, 05 Jul 2008 03:49:50 -0500, Peter Evans <peter.w.evans at gmail.com>  
wrote:

> Hi all,
>
> I'm a new user of Mathematica 6 and am struggling with some basics. I  
> wish to write a set of rules which are dependent upon a random variable.  
> I've been using RandomChoice to choose my variable and then large If and  
> Which statements to produce my desired dynamics.
>
> The problem is that the number that these statements end up spitting out  
> aren't recognised as what they are in further If and Which statements.  
> Here's a simple example that demonstrates my problem:
>
> In[1]:= x := RandomChoice[{1, 2, 3}]
> x
> Which[x == 1, 1, x == 2, 2, x == 3, 3]
>
> Out[2]= 1
>
> Out[3]= 2
>
> Mathematica clearly thinks x to be 1 but the If statement indicates its  
> 2. What am I doing wrong here?
>
> Much thanks,
>
> Pete
>
>



-- 
DrMajorBob at longhorns.com


  • Prev by Date: Re: Relational Operators and Random Integers
  • Next by Date: Re: Converting a string to a variable name
  • Previous by thread: Re: Relational Operators and Random Integers
  • Next by thread: Re: Relational Operators and Random Integers