저는 멀티 디 미네 이터 배열로 작업 중이며 동적 호환성 차트를 만들려고 노력하고 있습니다. 4 값 1과 4 값이있는 경우가능한 빈 슬롯이있는 배열을 펼치는 방법은 무엇입니까?
Given Data :
4 instances of Value 1
7 instances of Value 2
이상적인 최종 결과의 예
4 값 1과 7 값이있는 경우 2의는
[0] Value 2
[1] Value 1
[2] Value 2
[3]
[4] Value 2
[5] Value 1
[6] Value 2
[7]
[8] Value 2
[9] Value 1
[10] Value 2
[11] Value 1
[12] Value 2
2의 (균등 공간을하려고 중복되지 않고 출력)
[0] Value 1
[1] Value 2
[2]
[3] Value 1
[4] Value 2
[5]
[6]
[7] Value 1
[8] Value 2
[9]
[10]
[11] Value 1
[12] Value 2
2 개의 인스턴스 s는 1이고 3은 2입니다.
[0] Value 1
[1] Value 2
[2]
[3]
[4]
[5]
[6] Value 2
[7]
[8]
[9]
[10]
[11] Value 1
[12] Value 2
배열의 버킷 크기는 12-24입니다. 예제에서는 12 개를 사용합니다. 인스턴스 수가 12 개 버킷에 맞지 않는 경우 24 개까지 이동할 수 있습니다. 24 개에 맞지 않으면 오류가 발생합니다.
array_pop을 사용하여 배열을 역전하려고 시도한 모든 루프는 배열 중간에 빈 구멍을 만들거나 인스턴스를 고르게 퍼뜨리지 않습니다.
편집 : 다음은 내가 시도한 것입니다.
$table_array = range(0,12);
// Method 1
for ($i = 0; sizeof($table_array); $i++)
{
$ready_array[] = ($i % 2) ? array_pop($table_array) : array_shift($table_array);
}
// Method 2
for ($i = 0; $i < sizeof($table_array); $i++)
{
$index = ($i % 2) ? sizeof($table_array) - ceil($i/2) : ceil($i/2);
$ready_array[$index] = $table_array[$i];
}
ksort($ready_array);
프로젝트 세부 사항 및 목표
나는 호환 호환되지 않는 알 약의 목록을 가지고있다.
사용자가 알약과 복용하는 약을 선택할 수있게했습니다. 그 바탕으로
는, 나는 데이터베이스를 검색 및 호환성 내가 약을 복용하기 최소 12 시간의 기간을 값 1, 값 2
로 알려진 목록 작성에 따라 약을 일치합니다.
칼슘 4 개와 철분 3 개를 12 시간 동안 1 시간 간격으로 골고루 섞어서 겹치지 않게해야합니다. 칼슘 12 알, 아이언 12 알을 선택하면 24 시간 동안 약을 복용하게 할 수 있습니다. 귀하의 질문에 대한
검사가 진술하는 경우 값을로드 할 때. –
우선 순위는 'a', ab', aba', ababa 등입니다 (a가'값 1 '또는'값 2 '인 경우 중요하지 않습니다)? 내가 의미하는 바는 가능한 한 모든 값을 사이에 한 칸 띄워 둡니다 ('a'); 그렇지 않다면 가능한 최소한의 양의'ab'를 추가하십시오 (즉, 공백으로 둘러싸인 두 개의 서로 다른 값)? –
위와 같이 알고리즘에 대한 기준을 명확히하고 시도 (실패) 시도의 예를 표시하십시오 – Steve