ÐÑиÑваивание, ÑÑавнение и аÑиÑмеÑика ====================================== С некоÑоÑÑми иÑклÑÑениÑми Sage иÑполÑзÑÐµÑ ÑзÑк пÑогÑаммиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Python, поÑÑÐ¾Ð¼Ñ Ð¼Ð½Ð¾Ð³Ð¸Ðµ книги, знакомÑÑие Ñ Python, помогÑÑ Ð² изÑÑении Sage. Sage иÑполÑзÑÐµÑ ``=`` Ð´Ð»Ñ Ð¿ÑиÑваиваниÑ. ``==``, ``<=``, ``>=``, ``<`` и ``>`` иÑполÑзÑÑÑÑÑ Ð´Ð»Ñ ÑÑавнениÑ: :: sage: a = 5 sage: a 5 sage: 2 == 2 True sage: 2 == 3 False sage: 2 < 3 True sage: a == 5 True Sage поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð²Ñе базовÑе маÑемаÑиÑеÑкие опеÑаÑии: :: sage: 2**3 # ** ознаÑÐ°ÐµÑ Ð²Ð¾Ð·Ð²ÐµÐ´ÐµÐ½Ð¸Ðµ в ÑÑÐµÐ¿ÐµÐ½Ñ 8 sage: 2^3 # в Sage ^ и ** ÑÐ¸Ð½Ð¾Ð½Ð¸Ð¼Ñ (в оÑлиÑие Ð¾Ñ Python) 8 sage: 10 % 3 # Ð´Ð»Ñ ÑелÑÑ ÑиÑел % ознаÑÐ°ÐµÑ mod, Ñ.е. взÑÑие оÑÑаÑка 1 sage: 10/4 5/2 sage: 10//4 # Ð´Ð»Ñ ÑелÑÑ ÑиÑел // ознаÑÐ°ÐµÑ ÑелоÑиÑленное ÑаÑÑное 2 sage: 4 * (10 // 4) + 10 % 4 == 10 True sage: 3^2*4 + 2%5 38 ÐÑÑиÑление вÑÑажениÑ, Ñакого как ``3^2*4 + 2%5``, пÑоизводиÑÑÑ Ð² ÑооÑвеÑÑÑвии Ñо ÑÑаÑÑинÑÑвом опеÑаÑий, как опиÑано в :ref:`section-precedence`. Sage Ñакже поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð¼Ð½Ð¾Ð³Ð¸Ðµ маÑемаÑиÑеÑкие ÑÑнкÑии: :: sage: sqrt(3.4) 1.84390889145858 sage: sin(5.135) -0.912021158525540 sage: sin(pi/3) 1/2*sqrt(3) Ðак показÑÐ²Ð°ÐµÑ Ð¿Ð¾Ñледний пÑимеÑ, некоÑоÑÑе маÑемаÑиÑеÑкие вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð²Ð¾Ð·Ð²ÑаÑаÑÑ 'ÑоÑнÑе' велиÑинÑ, но не ÑиÑленнÑе пÑиближениÑ. ÐÐ»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑÑиÑÑ ÑиÑленное пÑиближение, иÑполÑзÑйÑе ÑÑнкÑÐ¸Ñ ``n`` или меÑод ``n`` (оба имеÑÑ Ð±Ð¾Ð»ÐµÐµ длиннÑе Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ - ``numerical_approx``; ÑÑнкÑÐ¸Ñ ``N`` - ÑÑо Ñо же Ñамое, ÑÑо и ``n``). Ðни пÑинимаÑÑ Ð½ÐµÐ¾Ð±ÑзаÑелÑнÑе аÑгÑменÑÑ ``prec``, коÑоÑÑй опÑеделÑÐµÑ ÐºÐ¾Ð»Ð¸ÑеÑÑво биÑов ÑоÑноÑÑи, и ``digits``, коÑоÑÑй опÑеделÑÐµÑ ÐºÐ¾Ð»Ð¸ÑеÑÑво деÑÑÑиÑнÑÑ ÑиÑÑ ÑоÑноÑÑи. Ðо ÑмолÑаниÑ, пÑименÑеÑÑÑ 53 биÑа ÑоÑноÑÑи. :: sage: exp(2) e^2 sage: n(exp(2)) 7.38905609893065 sage: sqrt(pi).numerical_approx() 1.77245385090552 sage: sin(10).n(digits=5) -0.54402 sage: N(sin(10),digits=10) -0.5440211109 sage: numerical_approx(pi, prec=200) 3.1415926535897932384626433832795028841971693993751058209749 Python Ð¸Ð¼ÐµÐµÑ Ð´Ð¸Ð½Ð°Ð¼Ð¸ÑеÑкий конÑÑÐ¾Ð»Ñ Ñипов, Ñак ÑÑо знаÑение, на коÑоÑое ÑÑÑлаеÑÑÑ Ð¿ÐµÑеменнаÑ, Ð¸Ð¼ÐµÐµÑ Ñип, ÑвÑзаннÑй Ñ Ð½Ð¸Ð¼. Ðднако, Ð´Ð°Ð½Ð½Ð°Ñ Ð¿ÐµÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð¼Ð¾Ð¶ÐµÑ ÑодеÑжаÑÑ Ð·Ð½Ð°Ñение лÑбого Ñипа из ÑзÑка Python: :: sage: a = 5 # a - Ñелое ÑиÑло sage: type(a) <type 'sage.rings.integer.Integer'> sage: a = 5/3 # ÑепеÑÑ a - ÑаÑионалÑное ÑиÑло sage: type(a) <type 'sage.rings.rational.Rational'> sage: a = 'hello' # ÑепеÑÑ a - ÑÑÑока sage: type(a) <type 'str'> ЯзÑк C, коÑоÑÑй Ð¸Ð¼ÐµÐµÑ ÑÑаÑиÑеÑкий конÑÑÐ¾Ð»Ñ Ñипов, ÑÑÑеÑÑвенно оÑлиÑаеÑÑÑ; пеÑеменнаÑ, обÑÑÐ²Ð»ÐµÐ½Ð½Ð°Ñ ÐºÐ°Ðº Ñелое ÑиÑло, Ð¼Ð¾Ð¶ÐµÑ ÑодеÑжаÑÑ ÑолÑко Ñелое ÑиÑло. ÐоÑенÑиалÑнÑм иÑÑоÑником пÑÑаниÑÑ Ð² Python ÑвлÑеÑÑÑ ÑÐ¾Ñ ÑакÑ, ÑÑо ÑиÑÐ»Ð¾Ð²Ð°Ñ ÐºÐ¾Ð½ÑÑанÑа, наÑинаÑÑаÑÑÑ Ñ 0, ÑаÑÑмаÑÑиваеÑÑÑ ÐºÐ°Ðº воÑÑмеÑиÑное ÑиÑло, Ñ.е. ÑиÑло по оÑÐ½Ð¾Ð²Ð°Ð½Ð¸Ñ 8: :: sage: 011 9 sage: 8 + 1 9 sage: n = 011 sage: n.str(8) # ÑÑÑока пÑедÑÑавлÑÑÑÐ°Ñ n по оÑÐ½Ð¾Ð²Ð°Ð½Ð¸Ñ 8 '11'