Hi Rob,
I am pretty new to Sage and am not used to the syntex, so even though
I write [y1,y2] , i do not mean it as a list.
Basically what I am trying to do is try and get the folllowing code to
work, if the summation does come out correct ly
x would be equal to 5 , i.e. x=5.

I would not need to specify when y1<y2 because I have made a rule in
my summation that y2 in [1..y1], so y2 can never be bigger than y1.

So the way I want my code to work is basically, when doing the
summation, the first one would be [y1,y2] = [1,1], then using my
previously set criteries

if y1=y2:
     [y1,y2]=2
elif y1>y2:
     [y1,y2]=1

this would make                        [y1,y2] = [1,1]=2
my second summation would be [y1,y2] = [2,1]=1
my last summation would be      [y1,y2] = [2,2]=2

so then x += [y1,y2]  = 5



-------------------------------------
if y1=y2:
     [y1,y2]=2
elif y1>y2:
     [y1,y2]=1

x=0
for y1 in [1..2]:
     for y2 in [1..y1]:
          x += [y1,y2]
print x
-------------------------------------

Is there a method of not using a function like "def chap(u,v)" for
this right now, because this is just a simplified problem, of my
larger problem. Thank you for taking your time looking at this.

Kind Regards
Chappman


On Feb 7, 8:07 pm, Anton Sherwood <[email protected]> wrote:
> On 2012-2-07 01:18, Chappman wrote:
>
>
>
>
>
>
>
>
>
> > Hi Rob,
>
> > with this syntex:
>
> >> x=0
> >> for y_1 in [1..2]:
> >>      for y_2 in [1..y_1]:
> >>           x += [y_1,y_2]
> >> print x
>
> > what I am trying to do is, trying to use the two numbers y_1 and y_2
> > in x +=[y_1,y_2]
> > to assign it a number from previously set conditions
>
> >> if y_1 = y_2:
> >>      y_1 = y_2 = 2
> >> elif y_1>y_2:
> >>      y_1 = y_2 = 1
>
> > but currently my code is having trouble doing that.
> > Is there a way to do this please?
>
> Are you trying to define [u,v] as a function whose value is 2 if the
> arguments are equal and 1 if u>v?  (What if v<u?)  Among other syntactic
> problems, you can't do that with [], because that symbol is reserved for
> lists.
>
> Here's how I'd do what I think you're trying to do:
>
> # define a function of two inputs
> def chap(u,v):
>         if u==v: return 2
>         # no 'else' needed, because 'return' breaks out of the function
>         if u>v: return 1
>         return None     # ought to be a numeric value
>
> x=0
> for y1 in range(1,3):
>         for y2 in range(1,y1+1):
>                 x += chap(y1,y2)
> print x
>
> --
> Anton Sherwood *\\*www.bendwavy.org*\\*www.zazzle.com/tamfang

-- 
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org

Reply via email to