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]