create account

[C언어] 코딩과 수학공식 by codingman

View this thread on: hive.blogpeakd.comecency.com
· @codingman · (edited)
$1.81
[C언어] 코딩과 수학공식
# [C언어] 코딩과 수학공식
-----
오늘은 수학 코딩을 할 때 수학공식을 알아두면 좋은 점을 이야기 할까 합니다. 사실 코딩은 수학과는 떨어질 수 없는 관계로 코딩 자체를 수학이라고 생각해도 무방 할 정도로 수학과 밀접한 관계를 지니고 있습니다. 그래서 수학적 사고를 가진 분들은 코딩을 거부감 없이 받아 들일 수 있습니다. 그리고 수학 코딩을 할 때 수학 공식을 알아두면 보다 효율적인 코딩을 할 수 있습니다.  간단한 예제를 통해 살펴보도록 하겠습니다.

## 1. 수열의 합
-----
a1항부터 an항까지의 합을 아래와 같은 식으로 표현 할 수 있습니다.
![a1.jpg](https://cdn.steemitimages.com/DQmVZGCohozkZRLYudb4b3yMctjrz3ki4jHHkVQzZTwprGw/a1.jpg)

자연수 1,2,3,4,5,...n 까지의 합을  식으로 나타내면 다음과 같이 다시 표현 합니다.

![a2.jpg](https://cdn.steemitimages.com/DQmaBAH9mtweY4v18NVrMz8mVGuSZr5gteVHxxzadN3AZ5L/a2.jpg)

이걸 코딩으로 하면,

```
for(int i=1;i<=n;i++){
  s=s+i
}
```
이 코딩은 1번식이 됩니다. 자연수 1부터 n까지의 합을 구한다고 하면 for문으로 루프를 단순하게 돌리게 됩니다. 하지만 2번식처럼 간략하게 코딩하면 for문의 불필요하게 반복 동작하는 시간복잡도를 줄일 수 있습니다. 그냥 단순하게 루프문으로 돌리는 것 보다 2번식처럼 한번 계산으로 끝내는 것이 좋겠죠.

문제) 1~10까지의 합?

- 1번 식: for(int i=1; i<=n;i++){ s = s+i; }
s 1= 1
s 2= s1 + 2
...
sn = s1+s2+...+n

- 2번식 : s=n(n+1)/2;

위 두식을 코딩화를 해보겠습니다.

## 코딩 실험
-----
```
#include <stdio.h>

int main(void) {
	
	int n = 10;
	int s1 = 0;
	int s2 = 0;
	
	for(int i=1;i<=n;i++){
		s1=s1+i;
	}
	printf("1번식 : %d = %d \n",n,s1);
	
	s2=n*(n+1)/2;
	printf("2번식 : %d = %d",n,s2);
	
	return 0;
}
```
**[결과]**
![a3.jpg](https://cdn.steemitimages.com/DQmcqAkcBDQZKsEdjjn5hsPCosH2URVortpMVETgjf5QKw6/a3.jpg)

## 마무리 

위 부분합의 대한 공식 두개를 살펴 보았습니다. 만약, 2번공식을 몰랐다면 for문으로 반복 계산을 10번 수행 했어야 했겠죠. 코딩을 제대로 하고 싶다면 먼저 수학을 먼저 공부 하시면 도움이 많이 됩니다. 대개 1부터 10까지의 합을 구하려고 하면 10명 중 10명은 for문을 이용한 1번 계산법을 선택합니다. 수학 공식을 알았다면 보다 효율적으로 식을 만들었겠죠. 그렇기 때문에 수학적 사고를 키워 코딩의 효율성을 높여 봅시다.

---

#####  <sub> **Sponsored ( Powered by [dclick](https://www.dclick.io) )** </sub>
[![dclick-imagead](https://s3.ap-northeast-2.amazonaws.com/dclick/image/snuff12/1550485175793.png)](https://api.dclick.io/v1/c?x=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjIjoiY29kaW5nbWFuIiwicyI6ImMtLTE1NTA3MDc1Nzk1OTUiLCJhIjpbImktMTg4Il0sInVybCI6Imh0dHBzOi8vc3RlZW1pdC5jb20va3ItZHJ1Z3dhcnMvQHNudWZmMTIvNTAtZHJ1Z3dhcnMiLCJpYXQiOjE1NTA3MDc1NzksImV4cCI6MTg2NjA2NzU3OX0.FxLVef_csyzH93xD79sFL391LYprv_MXD9J9qT4fzOE)
👍  , , , , , , , , , , , , , , , , , , , , , , , , , ,
properties (23)
authorcodingman
permlinkc--1550707579595
categorykr-dev
json_metadata{"tags":["kr-dev","jjangjjangman","busy","luckyman","kr"],"app":"busy/2.5.6","format":"markdown","community":"busy","users":[],"links":["https://www.dclick.io","https://api.dclick.io/v1/c?x=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjIjoiY29kaW5nbWFuIiwicyI6ImMtLTE1NTA3MDc1Nzk1OTUiLCJhIjpbImktMTg4Il0sInVybCI6Imh0dHBzOi8vc3RlZW1pdC5jb20va3ItZHJ1Z3dhcnMvQHNudWZmMTIvNTAtZHJ1Z3dhcnMiLCJpYXQiOjE1NTA3MDc1NzksImV4cCI6MTg2NjA2NzU3OX0.FxLVef_csyzH93xD79sFL391LYprv_MXD9J9qT4fzOE"],"image":["https://cdn.steemitimages.com/DQmVZGCohozkZRLYudb4b3yMctjrz3ki4jHHkVQzZTwprGw/a1.jpg","https://cdn.steemitimages.com/DQmaBAH9mtweY4v18NVrMz8mVGuSZr5gteVHxxzadN3AZ5L/a2.jpg","https://cdn.steemitimages.com/DQmcqAkcBDQZKsEdjjn5hsPCosH2URVortpMVETgjf5QKw6/a3.jpg","https://s3.ap-northeast-2.amazonaws.com/dclick/image/snuff12/1550485175793.png"]}
created2019-02-21 00:06:21
last_update2019-02-21 00:07:54
depth0
children2
last_payout2019-02-28 00:06:21
cashout_time1969-12-31 23:59:59
total_payout_value1.362 HBD
curator_payout_value0.445 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length2,028
author_reputation23,188,231,710,844
root_title"[C언어] 코딩과 수학공식"
beneficiaries
0.
accountdclick
weight1,000
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id80,167,741
net_rshares3,801,150,631,300
author_curate_reward""
vote details (27)
@bukio ·
짱짱맨 호출에 응답하였습니다.
properties (22)
authorbukio
permlinkre-bukio-jjangjjangman-1550708538214
categorykr-dev
json_metadata"{"tags":["bukio", "jjangjjangman"],"app":"steemer/1.0"}"
created2019-02-21 00:22:18
last_update2019-02-21 00:22:18
depth1
children1
last_payout2019-02-28 00:22:18
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length16
author_reputation11,545,563,591,097
root_title"[C언어] 코딩과 수학공식"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id80,168,179
net_rshares0
@codingman ·
방문해주셔서 감사해요
properties (22)
authorcodingman
permlinkre-bukio-re-bukio-jjangjjangman-1550708538214-20190221t003231752z
categorykr-dev
json_metadata{"tags":["kr-dev"],"app":"steemit/0.1"}
created2019-02-21 00:32:33
last_update2019-02-21 00:32:33
depth2
children0
last_payout2019-02-28 00:32:33
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length11
author_reputation23,188,231,710,844
root_title"[C언어] 코딩과 수학공식"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id80,168,457
net_rshares0