250x250
Notice
Recent Posts
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
관리 메뉴

일상 코딩

[python] 중량 조절 로더블 덤벨 원판 조합 코드 loadable dumbbell plate combination python code 본문

Python/무게 조절 덤벨 조합

[python] 중량 조절 로더블 덤벨 원판 조합 코드 loadable dumbbell plate combination python code

polarcompass 2023. 3. 12. 15:57
728x90
저중량 원판

파워리프팅 저중량 원판이 두께가 얇아
크라토스 중량 덤벨에는 더 적합하다고 판단

하지만 길이가 긴 zeid 중량 덤벨에는
역도용 원판도 무리 없이 다 들어가기에
본인에게 맞다고 생각하는 것을 두께를 계산해서
판단하면 되겠다.

 

역도용 5 / 2.5 / 2 / 1.5 / 1 / 0.5 두께가 두껍다.
파워리프팅용 5 / 2.5 / 1.25 / 0.5 / 0.25 두께가 얇다.

로더블 덤벨

파이썬 코드
plate = [0.25, 0.50, 1.00, 1.25, 2.50, 5.00]
loadable = 4.50

# 원판 조합
plate_combi = []
for a in [0, plate[0]]:
    for b in [0, plate[1]]:
        for c in [0, plate[2]]:
            for d in [0, plate[3]]:
                for e in [0, plate[4]]:
                    for f in [0, plate[5]]:
                        plate_combi.append([a,b,c,d,e,f])  

# 원판 조합 확인
for i in plate_combi:
    print(i)

# 원판 조합 계산
for target_weight in range(5,30+1):
    hap = 0
    for low_plate in plate_combi:
        hap = sum(list(map(lambda x: x, low_plate)))
        if(target_weight == loadable + hap * 2):
            low_plate_list = ""
            for i in low_plate:
                if i == 0: continue
                low_plate_list += f"{i} + "
            print(f"{target_weight:2d}kg = {loadable}kg + ( {low_plate_list[:-2]}) X 2")

dumbbell.ipynb
0.01MB

개선된 코드
plate = [0.25, 0.50, 0.75, 1.00, 1.25, 2.50, 5.00]
loadable = 5

elem = [[0, plate[i]] for i in range(len(plate))]
print(elem)

from itertools import product

improve_combi = []
for i in product(*elem):
    improve_combi.append(list(i))
    print(list(i))
    
for target_weight in range(5,30+1):
    hap = 0
    for low_plate in improve_combi:
        hap = sum(list(map(lambda x: x, low_plate)))
        if(target_weight == loadable + hap * 2):
            low_plate_list = ""
            for i in low_plate:
                if i == 0: continue
                low_plate_list += f"{i} + "
            print(f"{target_weight:2d}kg = {loadable}kg + ( {low_plate_list[:-2]}) X 2")

improved_dumbbell.ipynb
0.01MB

https://codingspooning.tistory.com/entry/Python-%EC%88%9C%EC%97%B4-%EC%A1%B0%ED%95%A9-itertools-%EC%84%A4%EB%AA%85-%EB%B0%8F-%EC%98%88%EC%A0%9C

 

[Python] 순열, 조합 itertools 설명 및 예제

안녕하세요. 오늘은 코딩테스트나 실제로 자주 사용되는 Python 내부 모듈 itertools에 대해 알아보겠습니다. 파이썬 itertools 모듈 설명 ▣ itertools란? Python 내장 라이브러리로 자신만의 반복자를 만

codingspooning.tistory.com

 

조합 결과

최대 25kg 까지 조합이 가능하다.

한 가지 무게에도 가능한 조합이 다 들어있어서 조합을 선택 할 수 있다.

또한 최대 이점은 1kg 단위로 조합이 가능해

한정된 예산으로 다양한 덤벨을 보유한 효과를 가지고 있어

경제적이라고 볼 수 있다.

5kg = 4.5kg + ( 0.25 ) X 2
6kg = 4.5kg + ( 0.25 + 0.5 ) X 2
7kg = 4.5kg + ( 1.25 ) X 2
7kg = 4.5kg + ( 0.25 + 1 ) X 2
8kg = 4.5kg + ( 0.5 + 1.25 ) X 2
8kg = 4.5kg + ( 0.25 + 0.5 + 1 ) X 2
9kg = 4.5kg + ( 1 + 1.25 ) X 2
10kg = 4.5kg + ( 0.5 + 1 + 1.25 ) X 2
10kg = 4.5kg + ( 0.25 + 2.5 ) X 2
11kg = 4.5kg + ( 0.25 + 0.5 + 2.5 ) X 2
12kg = 4.5kg + ( 1.25 + 2.5 ) X 2
12kg = 4.5kg + ( 0.25 + 1 + 2.5 ) X 2
13kg = 4.5kg + ( 0.5 + 1.25 + 2.5 ) X 2
13kg = 4.5kg + ( 0.25 + 0.5 + 1 + 2.5 ) X 2
14kg = 4.5kg + ( 1 + 1.25 + 2.5 ) X 2
15kg = 4.5kg + ( 0.5 + 1 + 1.25 + 2.5 ) X 2
15kg = 4.5kg + ( 0.25 + 5 ) X 2
16kg = 4.5kg + ( 0.25 + 0.5 + 5 ) X 2
17kg = 4.5kg + ( 1.25 + 5 ) X 2
17kg = 4.5kg + ( 0.25 + 1 + 5 ) X 2
18kg = 4.5kg + ( 0.5 + 1.25 + 5 ) X 2
18kg = 4.5kg + ( 0.25 + 0.5 + 1 + 5 ) X 2
19kg = 4.5kg + ( 1 + 1.25 + 5 ) X 2
20kg = 4.5kg + ( 0.5 + 1 + 1.25 + 5 ) X 2
20kg = 4.5kg + ( 0.25 + 2.5 + 5 ) X 2
21kg = 4.5kg + ( 0.25 + 0.5 + 2.5 + 5 ) X 2
22kg = 4.5kg + ( 1.25 + 2.5 + 5 ) X 2
22kg = 4.5kg + ( 0.25 + 1 + 2.5 + 5 ) X 2
23kg = 4.5kg + ( 0.5 + 1.25 + 2.5 + 5 ) X 2
23kg = 4.5kg + ( 0.25 + 0.5 + 1 + 2.5 + 5 ) X 2
24kg = 4.5kg + ( 1 + 1.25 + 2.5 + 5 ) X 2
25kg = 4.5kg + ( 0.5 + 1 + 1.25 + 2.5 + 5 ) X 2

 

운동기구 조회 링크

https://brand.naver.com/kusports/products/6445204622?NaPm=ct%3Dlf50qgnc%7Cci%3Dcheckout%7Ctr%3Dpla_myc%7Ctrx%3D%7Chk%3Dfaf05e9c5fecd7f61aeb8e9b2f2f363f763187b9

 

크라토스 파워리프팅 경량 저중량 크롬 원판 0.25kg (2개1세트) : 쿠스포츠

[쿠스포츠] 역도, 파워리프팅, 전문 리프터를 위한 쇼핑몰

brand.naver.com

https://brand.naver.com/kusports/products/3742235968?NaPm=ct%3Dlf50q6on%7Cci%3Dcheckout%7Ctr%3Dpla_myc%7Ctrx%3D%7Chk%3D27c841f9588c59f240357f3b53973d45d7ad841d

 

크라토스 역도 경량 저중량 원판 바벨 0.5kg (2개1세트) : 쿠스포츠

[쿠스포츠] 역도, 파워리프팅, 전문 리프터를 위한 쇼핑몰

brand.naver.com

https://brand.naver.com/kusports/products/4969818809?NaPm=ct%3Dlf50t3c1%7Cci%3Dcheckout%7Ctr%3Dpla_myc%7Ctrx%3D%7Chk%3D61f53e9a13003d73f28cae1cebbe30dc3be61c57

 

크라토스 무게조절 경량 아령봉 덤벨봉 조립아령 : 쿠스포츠

[쿠스포츠] 역도, 파워리프팅, 전문 리프터를 위한 쇼핑몰

brand.naver.com

https://smartstore.naver.com/zeid/products/5950664351?NaPm=ct%3Dlf518wc8%7Cci%3Dcheckout%7Ctr%3Dmyc%7Ctrx%3D%7Chk%3D64cbadeec3165c4c9de2eeabcd1eb52793946921

 

블랙샤프트 중량바 역기봉 이지 컬바 스쿼트 바벨 벤치 올림픽 1800mm 2200 20kg : 제이드 피트니스

블랙샤프트 중량바 역기봉 이지 컬바 스쿼트 바벨 벤치 올림픽 1800mm 2200 20kg

smartstore.naver.com

https://taeinspoment.co.kr/product/%EC%97%98%EB%A6%AC%EC%BD%94-%EB%A1%9C%EB%93%9C%EB%B8%94-%EB%8D%A4%EB%B2%A8-5kg/83/category/126/display/1/

 

엘리코 로드블 덤벨 5kg

상품결제정보 고액결제의 경우 안전을 위해 카드사에서 확인전화를 드릴 수도 있습니다. 확인과정에서 도난 카드의 사용이나 타인 명의의 주문등 정상적인 주문이 아니라고 판단될 경우 임의

taeinspoment.co.kr

 

가격 비교
5kg ~ 25kg 까지
양손으로
모두 보유 했을때 기준

양손 기준 조합 덤벨

https://www.ibesko.com/mall/index.php

 

베스코

브랜드관, PT/GX용품, 크로스핏용품, 정리대, 아령, 원판, 중량/경량봉, 가정용, 클럽용

www.ibesko.com

 

+추가 besko 제품 위주로 조합시
무게 범위가
5 ~ 27kg 까지 늘어나게 된다.

 

파이썬 코드
# 0.75 추가
plate = [0.25, 0.50, 0.75, 1.00, 1.25, 2.50, 5.00]
loadable = 5

# g 조합 추가
plate_combi = []
for a in [0, plate[0]]:
    for b in [0, plate[1]]:
        for c in [0, plate[2]]:
            for d in [0, plate[3]]:
                for e in [0, plate[4]]:
                    for f in [0, plate[5]]:
                        for g in [0, plate[6]]:
                            plate_combi.append([a,b,c,d,e,f,g])
for i in plate_combi:
    print(i)    
    
for target_weight in range(5,30+1):
    hap = 0
    for low_plate in plate_combi:
        hap = sum(list(map(lambda x: x, low_plate)))
        if(target_weight == loadable + hap * 2):
            low_plate_list = ""
            for i in low_plate:
                if i == 0: continue
                low_plate_list += f"{i} + "
            print(f"{target_weight:2d}kg = {loadable}kg + ( {low_plate_list[:-2]}) X 2")

dumbbell.ipynb
0.01MB

결과
 5kg = 5kg + ( ) X 2
 6kg = 5kg + ( 0.5 ) X 2
 7kg = 5kg + ( 1.0 ) X 2
 7kg = 5kg + ( 0.25 + 0.75 ) X 2
 8kg = 5kg + ( 0.5 + 1.0 ) X 2
 8kg = 5kg + ( 0.25 + 1.25 ) X 2
 8kg = 5kg + ( 0.25 + 0.5 + 0.75 ) X 2
 9kg = 5kg + ( 0.75 + 1.25 ) X 2
 9kg = 5kg + ( 0.25 + 0.75 + 1.0 ) X 2
 9kg = 5kg + ( 0.25 + 0.5 + 1.25 ) X 2
10kg = 5kg + ( 2.5 ) X 2
10kg = 5kg + ( 0.5 + 0.75 + 1.25 ) X 2
10kg = 5kg + ( 0.25 + 1.0 + 1.25 ) X 2
10kg = 5kg + ( 0.25 + 0.5 + 0.75 + 1.0 ) X 2
11kg = 5kg + ( 0.75 + 1.0 + 1.25 ) X 2
11kg = 5kg + ( 0.5 + 2.5 ) X 2
11kg = 5kg + ( 0.25 + 0.5 + 1.0 + 1.25 ) X 2
12kg = 5kg + ( 1.0 + 2.5 ) X 2
12kg = 5kg + ( 0.5 + 0.75 + 1.0 + 1.25 ) X 2
12kg = 5kg + ( 0.25 + 0.75 + 2.5 ) X 2
13kg = 5kg + ( 0.5 + 1.0 + 2.5 ) X 2
13kg = 5kg + ( 0.25 + 1.25 + 2.5 ) X 2
13kg = 5kg + ( 0.25 + 0.5 + 0.75 + 2.5 ) X 2
14kg = 5kg + ( 0.75 + 1.25 + 2.5 ) X 2
14kg = 5kg + ( 0.25 + 0.75 + 1.0 + 2.5 ) X 2
14kg = 5kg + ( 0.25 + 0.5 + 1.25 + 2.5 ) X 2
15kg = 5kg + ( 5.0 ) X 2
15kg = 5kg + ( 0.5 + 0.75 + 1.25 + 2.5 ) X 2
15kg = 5kg + ( 0.25 + 1.0 + 1.25 + 2.5 ) X 2
15kg = 5kg + ( 0.25 + 0.5 + 0.75 + 1.0 + 2.5 ) X 2
16kg = 5kg + ( 0.75 + 1.0 + 1.25 + 2.5 ) X 2
16kg = 5kg + ( 0.5 + 5.0 ) X 2
16kg = 5kg + ( 0.25 + 0.5 + 1.0 + 1.25 + 2.5 ) X 2
17kg = 5kg + ( 1.0 + 5.0 ) X 2
17kg = 5kg + ( 0.5 + 0.75 + 1.0 + 1.25 + 2.5 ) X 2
17kg = 5kg + ( 0.25 + 0.75 + 5.0 ) X 2
18kg = 5kg + ( 0.5 + 1.0 + 5.0 ) X 2
18kg = 5kg + ( 0.25 + 1.25 + 5.0 ) X 2
18kg = 5kg + ( 0.25 + 0.5 + 0.75 + 5.0 ) X 2
19kg = 5kg + ( 0.75 + 1.25 + 5.0 ) X 2
19kg = 5kg + ( 0.25 + 0.75 + 1.0 + 5.0 ) X 2
19kg = 5kg + ( 0.25 + 0.5 + 1.25 + 5.0 ) X 2
20kg = 5kg + ( 2.5 + 5.0 ) X 2
20kg = 5kg + ( 0.5 + 0.75 + 1.25 + 5.0 ) X 2
20kg = 5kg + ( 0.25 + 1.0 + 1.25 + 5.0 ) X 2
20kg = 5kg + ( 0.25 + 0.5 + 0.75 + 1.0 + 5.0 ) X 2
21kg = 5kg + ( 0.75 + 1.0 + 1.25 + 5.0 ) X 2
21kg = 5kg + ( 0.5 + 2.5 + 5.0 ) X 2
21kg = 5kg + ( 0.25 + 0.5 + 1.0 + 1.25 + 5.0 ) X 2
22kg = 5kg + ( 1.0 + 2.5 + 5.0 ) X 2
22kg = 5kg + ( 0.5 + 0.75 + 1.0 + 1.25 + 5.0 ) X 2
22kg = 5kg + ( 0.25 + 0.75 + 2.5 + 5.0 ) X 2
23kg = 5kg + ( 0.5 + 1.0 + 2.5 + 5.0 ) X 2
23kg = 5kg + ( 0.25 + 1.25 + 2.5 + 5.0 ) X 2
23kg = 5kg + ( 0.25 + 0.5 + 0.75 + 2.5 + 5.0 ) X 2
24kg = 5kg + ( 0.75 + 1.25 + 2.5 + 5.0 ) X 2
24kg = 5kg + ( 0.25 + 0.75 + 1.0 + 2.5 + 5.0 ) X 2
24kg = 5kg + ( 0.25 + 0.5 + 1.25 + 2.5 + 5.0 ) X 2
25kg = 5kg + ( 0.5 + 0.75 + 1.25 + 2.5 + 5.0 ) X 2
25kg = 5kg + ( 0.25 + 1.0 + 1.25 + 2.5 + 5.0 ) X 2
25kg = 5kg + ( 0.25 + 0.5 + 0.75 + 1.0 + 2.5 + 5.0 ) X 2
26kg = 5kg + ( 0.75 + 1.0 + 1.25 + 2.5 + 5.0 ) X 2
26kg = 5kg + ( 0.25 + 0.5 + 1.0 + 1.25 + 2.5 + 5.0 ) X 2
27kg = 5kg + ( 0.5 + 0.75 + 1.0 + 1.25 + 2.5 + 5.0 ) X 2
728x90