회사에서 신용점수 나눠서 등급 조정할 때 하는 시뮬레이션을 보통은 SAS로 짰는데, 이번에 C++ 배우는 김에 한 번 짜봤다. 실제 고객 자료가 없으므로 신용점수는 아래와 같이 랜덤하게 만들어서 나누는 것이다.

 원래는 이런 거를 백만번 정도 돌린 다음에 그 결과를 막대 차트로 그리려고 했는데, 지금 상황으로는 그 근처도 못가고 있는 상황이다.

일 단 이거 가져다가 각 랜덤 결과를 100만번 정도 돌려서 개별값을 배열에 저장하고 텍스트로 빼내는 것을 생각했는데 말이지. 이런 시뮬레이션을 하는 것은 솔직히 속도만 아니라면 엑셀이 더 낫지 않을까 생각이 든다. 이런 거는 SAS/R/C++로 하고 나머지는 엑셀에서 시각화 하는 것을 생각중인데 말이다.

 역시나 시각화 이야기가 나오면 역시나 엑셀로 가야 하는구나. 좀더 동적인 프로그램을 짜려면 아직도 갈길이 먼듯 하고 말이지. 아래 프로그램 짜면서 온갖 잡다한 헤더 다 갖다 붙이고, loop 구문으로 해결이 안되어서 결국에는 if로 떡칠을 해놨구만 에효.

 SAS에서는 매크로를 워낙에 잘 써서 그런지 C++ 오면 이런 삽질이 없다. 가르침을 주세요, 이글루스 프로그래밍 고수님들.

#include <iostream>
#include <stdlib.h>
#include <algorithm>
#include <cstdlib>
#include <ctime>
#include <vector>

using namespace std;

int main(void)
{
    srand((unsigned int)time(NULL));

    // input random value to cut-off score array
    int pnt[9];
    for(int i = 0; i < 8; i++)
    {
        pnt[i] = rand()%999+1;
        cout<<pnt[i]<<endl;
    }
    pnt[8] = 1000;


    // Sorting the cut-off score array
    sort(pnt, pnt+9);

    int cnt[9] = {0,};
    // Print Score
    for(int i = 0; i < 9; i++)
    {
        cout<<"pnt["<<i<<"] = "<<pnt[i]<<endl;
    }
    
    int cust_arr[1000000];
    for(int i = 0; i < 1000000; i++)
    {
        cust_arr[i] = rand()%1000+1;
        if(cust_arr[i] <= pnt[0])
            cnt[0] += 1;
        else if(cust_arr[i] <= pnt[1])
            cnt[1] += 1;
        else if(cust_arr[i] <= pnt[2])
            cnt[2] += 1;
        else if(cust_arr[i] <= pnt[3])
            cnt[3] += 1;
        else if(cust_arr[i] <= pnt[4])
            cnt[4] += 1;
        else if(cust_arr[i] <= pnt[5])
            cnt[5] += 1;
        else if(cust_arr[i] <= pnt[6])
            cnt[6] += 1;
        else if(cust_arr[i] <= pnt[7])
            cnt[7] += 1;
        else if(cust_arr[i] <= pnt[8])
            cnt[8] += 1;
    }

    for(int i = 0; i < 8; i++)
    {
        cout<<"Tier0"<<i+1<<" : "<<cnt[i]<<endl;
    }

//    cout<<cust_arr[0][1]<<endl;
//    cout<<cust_arr[1999][0]<<endl;

    return 0;
}

반응형

'C, C++, Java' 카테고리의 다른 글

Python type() quivalent in Kotlin  (0) 2023.10.18
Java의 정석 2장  (0) 2016.12.11
Overriding1.cpp  (0) 2014.05.02
CReference2.cpp  (0) 2014.05.02
P304.cpp  (0) 2014.05.02

+ Recent posts