2012-03-02 2 views
1

오전 건물 VS2010 Pro를 사용하는 클리닉 용 소프트웨어. 요구 사항 중
은 다음과 같습니다알고리즘 분석 : 난수

  1. 는 등록의 날짜를 기준으로 환자 수를 생성해야합니다. 남성 환자에 대한
  2. 가운데 두 자리는 여성 환자 (11)

  3. 가운데 두 자리는 남성 환자에 대한 0
    99 예를 들어 오늘 등록에서 마지막 두 자리 숫자가 범위 (22)

  4. 입니다 : 2012-03-02. 내 질문 : 하루에 등록 할 수있는 환자의 최대 수는 얼마입니까?

    public string GetCurrentDate() 
    { 
        DateTime currentDate = DateTime.Now; 
        string todaydate = currentDate.ToShortDateString().ToString(); 
        return todaydate; 
    } 
    
    
    public int RadomNum() 
    { 
        return _random.Next(00, 99); 
    } 
    
    
    public string GeneratePatientNumber(Gender gender) 
    { 
        return GetCurrentDate() + "-" + (int)gender + "-" + RadomNum(); 
    } 
    
+0

인터뷰 질문과 같은 ... 최대 수는 무엇입니까? 환자 ????? – Pranav

+0

글쎄, 나는 각각 (남성과 여성) 100-100이 될 것이라고 생각한다. – Pranav

답변

3

것은 당신이 환자의 최대 수를 당신은 하루에 등록 할 수 있습니다 무엇을 묻는 : 여기

내 코드의 일부입니다? 그렇다면 성별마다 유일한 두 가지 숫자가 마지막 두 자리 숫자이므로 성별에 따라 해당 패턴에 따라 100 가지 가능한 환자 코드가 있습니다.

몇 가지 사항을 언급해야한다고 언급해야합니다.

먼저 임의 숫자 생성은 사용 가능한 모든 가능성을 사용하기 전에 이미 생성 된 수의 숫자에 잘 맞을 수 있음을 의미합니다. 무작위 수를 비 순차적으로 유지하는 데 필요한가요? 그렇다면 처음부터 숫자 0 ~ 100의 목록을 임의로 뒤섞어서 따로 보관하거나 그 중 일부만 사용하면됩니다. 생성 된 ID가 맞는지 확인하는 것만으로도 그럴 수 있습니다. 이미 존재합니다.

또한 RandomNum()은 int이므로 환자 번호에 포함하기 전에 두 자리로 채워야합니다.

0

이론상 하루 200 : 남성의 경우 100, 여성의 경우 100.

Btw, 난수를 생성하므로 고유하지 않은 숫자가있을 수 있습니다.

마지막으로 사용한 ID (0-100)를 검색 한 후 다음 ID를 사용하는 것이 좋습니다. 아마도 환자가 시스템에서 제거 될 때 틈이 있음을 고려할 수도 있습니다. 이를 위해 성별과 날짜에 대한 첫 UNUSED ID를 반환하는 함수를 작성해야합니다. 같은

뭔가 :

id = GetFirstFreeId(GetCurrentDate(), gender); 

새로운 환자에 대한 해당 ID를 사용합니다.

return string.Format("{0}-{1}-{2}", GetCurrentDate(), (int)gender, RadomNum()); 

또한 대신 RadomNum의 RandomNum을해야하지만, 이것은 단지 오타입니다 :

은 또한 그것은 (사용 성능의 관점에서) 더 낫다.

1

왜 랜덤해야합니까? 순차적 번호 만 사용하면 안됩니다. 즉, 남성 환자는 2012-03-02-22-00 - 2012-03-02-22-99입니다.

그들은 성별에 따라 하루에 최대 100 명의 신규 환자만을 등록하려고합니까?