Փորձիր գումարել: 1+2+3+…+7+8+9+10
(Ա) Օգտագործելով Python
Հետեվյալ կոդը կցուցադրի թվերը 1, 2, …10: Տես որ երկրորդ տողը for ցիկլի մեջ է քանի որ indent է արված, առաջ է տված: Այստեղ range(1,11,1) նշանակում է որ i փոփոխականը սկսվում է 1ից, աճում 1ով, հասնում մինչեւ 11 ու կանգնում մինչեւ 11 հասնելը:
Բարձակում կտեսնենք հետեվյալ արտադրանքը՝
Որպեսզի գումարենք թվերը, պետք է ընտրել փոփոխական որը գումարելով թվերը կկուտակի իր մեջ իրենց ամբողջական գումարը: Եկեք փոփոխականի անունը դնենք sum:
Այստեղ print հրամանը for բլոկի մեջ է քանի որ ինդենտավորված է, հետեվաբար ամեն իտերացիաի ընթացքում ցուցադրում է sum փոփոխականի արժեքը՝
- քայլ 1` sum=0, i=1, sum=0+1=1
- քայլ 2` sum=1, i=2, sum=1+2=3
- քայլ 3` sum=3, i=3, sum=3+3=6
- քայլ 10` sum=45, i=10, sum=45+10=55
Իհարկե, կարելի է print հրամանը հանել for մարմնից, հետեվաբար վերացնելով իր արժեքի միջանկյալ ցուցադրումնեը ՝
Առաջին տողում ֆիքսում ենք որ փոփոխականը սկզբից 0 է: Ամեն իտերացիայի, կրկնության ժամանակ երբ i փոփոխականը աճում է սկսած 1ից, sum փոփոխականը աճում է:
Հիմա փորձիր ինքնուրույն՝
(Բ) Օգտագործելով Գաուսի մեթոդը՝
$(1+10)+(2+9)+(3+8)+(4+7)+(5+6) = 5\times11= \frac{10}{2} \times 11 = 55$
Ընթանրացնելով այս մեթոդը, կարող ենք գումարել ցանկացած թվաբանական շարք սկսած 1ից՝
Եթե $n$ը զույգ թիվ է:
$1+2+3+..+n = 1+2+3+…+(n-3)+(n-2)+(n-1)+n=$
$=(1+n)+(2+(n-1))+(3+(n-2))+…+(\frac{n}{2}+(n-\frac{n-2}{2}))=$
$=(n+1)+(n+1)+…+(n+1)=\frac{n(n+1)}{2}$
Վարժություններ
- 1. Գումարիր՝ 1+2+3+4+…+96+97+98+99+100 Ինչպես կարելի է փոխել վերեվի կոդը որպեսի ստանանք պատասխանը?
- 2. Գումարիր 23+24+25+…+354