2011-02-07 3 views
1

매일 사이트마다 다른 팁을 표시해야하는 정보가 약 100 개 있으며 데이터베이스에 액세스 할 수 없습니다. 팁을 배열 그룹에 넣고 각 그룹을 한 달에 연관시키는 방법에 대해 생각해 봤지만 팁이 무작위로 나타나지는 않습니다. 이 작업을 수행하는 데 상대적으로 어려움이없는 방법은 무엇입니까?매일 팁 표시, 데이터베이스 없음

답변

1

당신이 하나의 팁 하루를 표시하려면, 당신은 어떤 상태를 저장 할 수 없기 때문에, 다음과 같은 작업을 수행 할 수 있습니다

  1. 정렬 어떤 결정 방법을 사용 팁.
  2. 시드는 오늘 날짜가있는 난수 생성기입니다.
  3. 를 디스플레이 i번째 팁 여기서 i = random.Next(numTips)
  4. 반복 할 때마다 (상기 랜덤 넘버 생성기를 리 시드 포함)이 전체 프로세스.

당신은 또한 각 팁을 확인하려면 적어도 한 번 팁이 반복되기 전에 표시됩니다

  1. 씨 상수 값을 가진 난수 생성기 (하지 현재 시간이이다 중대한).
  2. 생성 한 not-so-random number generator를 사용하여 요소를 Fisher-Yates으로 섞습니다. 또는 LINQ를 사용

    tips.OrderBy(x => random.Next()).ToArray(); 
    
  3. 을 표시 i 팁 모드 i이 신기원 이후 일 수는 tips.Length.
+0

이것이 내가 찾던 해결책이라고 생각합니다. 고마워요! – Alex

0

1에서 100 사이의 임의의 숫자를 선택하고 그 팁을 표시하십시오.

팁을 디스크에 저장할 수 있다면 1.100.tip을 통해 파일 이름을 지정하십시오. 그런 다음 번호를 선택하면 해당 파일을 읽고 표시하십시오.

팁이 메모리에 있으면 (배열이 가장 쉽다), 임의의 숫자에서 1을 뺀 팁을 표시하면됩니다 (0부터 시작하는 배열 인덱싱이 있다고 가정).

여기에 근본적인 것이 빠져 있지 않는 한, 그것은 기본적인 요지입니다.

+0

나는 그 라인을 따라 생각하고 있었지만 팁은 하루 동안 표시해야합니다. 즉, ** 오늘 ** 페이지를 다시로드하면 팁이 변경되고 내일은 변경되지 않습니다. – Alex

0

의 팁 표시 파일에는 세션 시작 섹션의 날짜를 확인하는 기능이 있습니다. 날짜 검사기가 하루 중 어느 날짜를 계산하는지 확인하십시오 - 하루 1, 2 3, ... 100.

연간 일 수에 따라 팁 파일을 선택하십시오. 100보다 큰 경우 1에서 다시 시작합니다.

관련 문제