On Tue, Feb 7, 2012 at 1:07 PM, Chappman <[email protected]> wrote:
> 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.

Sage will interpret [y1, y2] as a list (as will others reading your code).

> 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.

If I understand your intent correctly, you do want a function here,
both for the simplified and larger problem. Is there a reason that
this doesn't work for you?

> 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

-- 
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