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