> 백엔드 개발 > PHP 튜토리얼 > 把几个数字拆分保存的算法有关问题

把几个数字拆分保存的算法有关问题

WBOY
풀어 주다: 2016-06-13 13:11:15
원래의
929명이 탐색했습니다.

把几个数字拆分保存的算法问题
假如有五个数字:1,2,3,4,5,要保存到数组中,结果如下:

数组1:2,3,4,5
数组2:1,3,5
数组3:1,2,3,4,5
数组4:1,2,4

一共有4个数组,我的目的是把这5个数字在这四个数组中每个数字都出现3次,这样有一个数组不存在了,从其它数组也能把所有数字取出来。

我不需要代码,只要有思路就行,谢谢各位达人。





------解决方案--------------------
想了一下,你这还不是 raid5.你的这个方案的冗余度要大的多
象这样组织数据的话,可以在丢失任意两组数据的情况下,读出数据。
不过组织方式与你的略有不同

PHP code
$ar = array(
  array(0,2,3,4,5),
  array(1,0,3,0,5),
  array(1,2,3,4,5),
  array(1,2,0,4,0),
);

unset($ar[3]);
unset($ar[1]);
for($i=0; $i<font color="#e78608">------解决方案--------------------</font><br>
로그인 후 복사
PHP code

<?php function split2Array($n, $repeat = 3)
{
    $result = array();
    for($i = 0; $i < $n; $i++)
    {
        for($j = 0; $j < $repeat; $j++)
        {
            $result[($i + $j) % ($repeat + 1)][$i] = $i + 1;
        }
    }
    return $result;
}
print_r(split2Array(7, 4));
?> <div class="clear">
                 
              
              
        
            </div>
로그인 후 복사
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿