Python ծրագիր՝ զրոյի վրա կենտրոնացած ցուցակ ստեղծելու համար
Զրո կենտրոնացված ցուցակի ստեղծումը ներառում է թվերի հաջորդականության ստեղծում, որտեղ զրոն տեղադրված է ցուցակի մեջտեղում: Չնայած ցանկի չափը կարող է հարմարեցվել, հաճախ նախընտրելի է օգտագործել կենտ թվեր՝ ապահովելու համար տարրերի սիմետրիկ բաշխումը զրոյի շուրջ:
Այս հոդվածում մենք կքննարկենք Python ծրագրավորման միջոցով զրոյի վրա կենտրոնացած ցուցակ ստեղծելու տարբեր մոտեցումները:
Մոտեցում
Կենտրոնացված ցուցակ ստեղծելու համար մենք կարող ենք հետևել ստորև նշված քայլերին
Որոշեք ցանկի ցանկալի չափը: Այս արժեքը կոչենք n:
Եթե n-ը կենտ թիվ է, ապա այն արդեն հարմար է կենտրոնացված ցուցակ ստեղծելու համար։ Եթե n-ը զույգ թիվ է, մենք պետք է այն հարմարեցնենք հաջորդ կենտ թվին, որպեսզի համոզվենք, որ զրոն գտնվում է կենտրոնում:
-
Հաշվեք ցուցակի կիսաչափությունը՝ կատարելով n-ի ամբողջական (//) բաժանումը 2-ի վրա: Այս արժեքը ներկայացնում է զրոյի յուրաքանչյուր կողմի տարրերի քանակը:
Ստեղծեք ցուցակ՝ օգտագործելով միջակայքի ֆունկցիան՝ սկսած -կեսից և վերջացրած կես + 1-ով: Շրջանակը կստեղծի թվեր -կեսից մինչև կեսը, ներառյալ: 1-ը կեսին ավելացնելով, մենք ապահովում ենք, որ զրոն ներառված է ցանկում:
Վերափոխեք միջակայքի օբյեկտը ցուցակի, օգտագործելով ցուցակ գործառույթը:
Հետևելով այս քայլերին՝ մենք ապահովում ենք, որ ցուցակի արժեքները սիմետրիկորեն բաշխվեն զրոյի շուրջ:
Մուտք-ելքային սցենարներ
Եկեք անցնենք որոշ մուտքային-ելքային սցենարներ.
Input integer = 5
Output centered list [-2, -1, 0, 1, 2]
Մուտքի չափի ամբողջ թիվը տարօրինակ է, ուստի ելքային ցուցակը ստեղծվում է -2-ից 2-ի տարբեր տարրերով՝ կենտրոնացած զրոյի վրա:
Input integer = 6
Output centered list [-3, -2, -1, 0, 1, 2, 3]
Մուտքի չափը զույգ է, և ելքային ցուցակը ստեղծվում է տարրերով (հարմարվում է հաջորդ կենտ թվին՝ 7-ին), որոնք տատանվում են -3-ից մինչև 3-ը՝ կենտրոնացած զրոյի վրա:
Օգտագործելով range() ֆունկցիան
Այս մոտեցման մեջ մենք օգտագործում ենք range() ֆունկցիան` կենտրոնացված ցուցակը ներկայացնող թվերի հաջորդականություն ստեղծելու համար: Ցուցակի կիսաչափությունը որոշվում է n-ը 2-ի բաժանելով՝ օգտագործելով հատակի բաժանման օպերատորը (//): Սկսելով -կես-ից և ավարտվելով միջակայքում կես + 1-ով, մենք ապահովում ենք, որ ստացված ցուցակը կենտրոնացած է զրոյի վրա: Տարածքի օբյեկտը ցուցակի վերածելու համար մենք կիրառում ենք list() ֆունկցիան։
Օրինակ
Այս օրինակում մենք կսահմանենք ֆունկցիա, որն ընդունում է ամբողջ թիվ որպես մուտքագրում և ստեղծում զրոյի վրա կենտրոնացած ցուցակ՝ հիմնվելով այդ արժեքի վրա:
def create_centered_list(n):
if n % 2 == 0:
# If n is even, we adjust it to the next odd number
n += 1
half = n // 2
centered_list = list(range(-half, half + 1))
return centered_list
# define the size of the centered list
size = 9
centered_list = create_centered_list(size)
print('Output centered list:',centered_list)
Արդյունք
Output centered list: [-4, -3, -2, -1, 0, 1, 2, 3, 4]
Օրինակ
Այս օրինակն աշխատում է այնպես, ինչպես նախորդը, բայց այստեղ list() ֆունկցիան օգտագործելու փոխարեն մենք կօգտագործենք ցուցակի ըմբռնումը միջակայքի օբյեկտը ցուցակի վերածելու համար:
def create_centered_list(n):
if n % 2 == 0:
# If n is even, we adjust it to the next odd number
n += 1
half = n // 2
centered_list = [x for x in range(-half, half + 1)]
return centered_list
# define the size of the centered list
size = 15
centered_list = create_centered_list(size)
print('Output centered list:',centered_list)
Արդյունք
Output centered list: [-7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7]
Օգտագործելով np.arange() ֆունկցիան
Այստեղ NumPy գրադարանի np.arange() ֆունկցիան օգտագործվում է թվերի հաջորդականություն ստեղծելու համար՝ նշված սկզբի, կանգառի և քայլի չափով:
Օրինակ
Այս օրինակում numpy գրադարանն օգտագործվում է կենտրոնացված ցուցակ ստեղծելու համար:
import numpy as np
def create_centered_list(n):
if n % 2 == 0:
# If n is even, we adjust it to the next odd number
n += 1
half = n // 2
centered_list = np.arange(-half, half + 1)
return centered_list.tolist()
# define the size of the centered list
size = 4
centered_list = create_centered_list(size)
print('Output centered list:',centered_list)
Արդյունք
Output centered list: [-2, -1, 0, 1, 2]