Форум программистов, компьютерный форум, киберфорум
Наши страницы

PHP для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.80
radno
2 / 2 / 1
Регистрация: 03.12.2012
Сообщений: 33
#1

Матрица . Как уменьшить код - PHP

06.12.2012, 14:25. Просмотров 2021. Ответов 33

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?php
 
$base_numbers = array(1, 3, 10, 2, 5);
            $increment_matrix = array();
            $summ = 0;
 
            foreach ($base_numbers as $base_number) {
                $increment_matrix[] = $summ + $base_number;
                $summ += $base_number;
            }   
            
            array_shift($increment_matrix);
        echo "<pre>";
            echo implode("<br>",$increment_matrix); 
        echo "</pre>";  
$base_numbers = array(1, 10, 2, 5, 1);
            $increment_matrix = array();
            $summ = 0;
                    foreach ($base_numbers as $base_number) {
                $increment_matrix[] = $summ + $base_number;
                $summ += $base_number;
            }   
            
            array_shift($increment_matrix);
        echo "<pre>";
            echo implode("<br>",$increment_matrix); 
        echo "</pre>";  
$base_numbers = array(1, 2, 5, 1, 3);
            $increment_matrix = array();
            $summ = 0;
                    foreach ($base_numbers as $base_number) {
                $increment_matrix[] = $summ + $base_number;
                $summ += $base_number;
            }   
            
            array_shift($increment_matrix);
        echo "<pre>";
            echo implode("<br>",$increment_matrix); 
        echo "</pre>";  
$base_numbers = array(1, 5, 1, 3, 10);
            $increment_matrix = array();
            $summ = 0;
                    foreach ($base_numbers as $base_number) {
                $increment_matrix[] = $summ + $base_number;
                $summ += $base_number;
            }   
            
            array_shift($increment_matrix);
        echo "<pre>";
            echo implode("<br>",$increment_matrix); 
        echo "</pre>";  
        
?>
как уменьшыть код , чтоб непересоздавать новий масив $base_numbers = array();

Добавлено через 3 минуты
И как вивести на екран вот так:
4 14 16 21
11 13 18 19
3 8 9 12
6 7 10 20
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2012, 14:25
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Матрица . Как уменьшить код (PHP):

Как уменьшить код? - PHP
Здравствуйте, написал код. Но меня смущает 3 запроса к БД. Как его можно сделать короче? &lt;? ob_start(); $sql= &quot;SELECT * FROM `{$a}`...

Навигация по сайту. Как оптимизировать и уменьшить код - PHP
Придумываю навигацию по сайту. Вот что вышло, как уменьшить может в массив засунуть кто подскажет? &lt;? echo '&lt;a href=&quot;?num=1&quot;&gt;Пункт...

Уменьшить код - PHP
Доброго дня всем. Можно ли уменьшить данный код? И как прописать так, чтоб если по user agent устройство не найдено, писало, Неизвестное...

Как уменьшить изображение? - PHP
Ребят, всем привет! Вот у меня проблема, при загрузке больше 4м фото, выскакивает вот такая ошибка - Allowed memory size of 1342177280...

Как уменьшить количество запросов к БД - PHP
Здравствуйте, у меня есть цикл который выводит картинки, а alt='' и title='' должны будут выводиться из БД. Я могу только сделать так,...

Как уменьшить разрешение изображения? - PHP
Ко мне на сайт пользователи могут загружать аватарки. Дело в том, что я ставлю ограничения на размеры аватаров, для экономии места. Да и...

33
radno
2 / 2 / 1
Регистрация: 03.12.2012
Сообщений: 33
11.12.2012, 15:28  [ТС] #31
alpex, Спасибо за код прекрасно работает. Вы очень прекрасно разбираетеся в пхп. Действительно в примере опечатка. Не подскажете, ещо как построить после етого матрицы с (1,2,3,4)
.
0
alpex
600 / 575 / 18
Регистрация: 16.07.2012
Сообщений: 1,760
11.12.2012, 19:24 #32
построить, в смысле вывести на екран?
два вложенных цикла for или foreach делаете и выводите, первым перебираете матрицы, а вторым значения в этих матрицах.
PHP в этих примерах практически не при чем, там самые примитивные функции используются
0
radno
2 / 2 / 1
Регистрация: 03.12.2012
Сообщений: 33
11.12.2012, 20:53  [ТС] #33
Очень благодарен большое спасибо. Неподскажыте ищо как зделать чтение через запетую, и вывод всех матриц на екран, чтоб слово array не было
0
alpex
600 / 575 / 18
Регистрация: 16.07.2012
Сообщений: 1,760
12.12.2012, 04:32 #34
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<?php
function latinSquare(array $input)
{
    $result = array();
    $sum = array_sum($input);
    $count = count($input);
    $num = $input[0];
    
    for ($mtx = 0; $mtx < $count; $mtx ++){
        $num += (bool)$mtx ? $input[$mtx - 1] : 0;
        $result[$mtx] = array();
        $offset = 0;
        
        for ($row = 0; $row < ($count - 1 + $offset); $row ++){
            $value = $num;
            
            if ($mtx === 0 && $row === 0){
                $offset = 1;
                continue;
            }
            
            for ($var = 0; $var < ($count - 1); $var ++){
                
                $index = ($var + $row);
                $index = ($index >= $count) ? $index - $count : $index;
                $value += $input[$index];
                $value = ($value > $sum) ? $value % $sum : $value;
                
                if ((bool)$mtx && !in_array($value, $result[0])){
                    $offset = 1;
                    break;
                }
                
                $result[$mtx][] = $value;
            }
        }
    }
    return $result;
}
 
if (isset($_POST['input'])) {
    $input = explode(',', $_POST['input']);
    $input = array_map('intval', $input);
    $row = count($input) - 1;
    $result = latinSquare($input);
}
?>
 
<!DOCTYPE html>
<html>
    <head>
        <title>Построение матриц методом Латинских квадратов</title>
    <style>
        #wrapper {
            width: 760px;
            position: relative;
            background: #eee;
            padding: 30px;
        }
        table.matrix, .matrix td {
            border: 1px solid grey;
        }
        .matrix td{
            width: 25px;
            height: 25px;
        }
        h3, fieldset, .matrix td {
            text-align: center;
        }
        #wrapper table, fieldset, #wrapper {
            margin: 0 auto;
        }
        fieldset {
            width: 425px;
        }
    </style>
    </head>
    <body>
        <div id="wrapper">
            <form action="<?=$_SERVER['SCRIPT_NAME']?>" method="POST">
                <fieldset>
                    <legend>Построение матриц методом Латинских квадратов</legend>
                    <label>Введите числа через запятую :<p>
                        <input type="text" name="input" /></p></label>
                    <p><input type="submit" name="submit" value="Построить" /></p>
                </fieldset>
            </form>
            <? if (isset($result)) : ?>
            <table>
                <tbody>
                    <h3>Исходные данные : <?=htmlspecialchars($_POST['input']) ?></h3>
                </tbody>
                <tr>
                <? foreach ($result as $matrix) : ?>
                <td>
                <table class="matrix">
                    <tr>
                    <? for ($i = 0, $cnt = count($matrix); $i < $cnt; $i ++) : ?>
                    <td><?=$matrix[$i] ?></td>
                    <? if (0 === (($i + 1) % $row) && ($i + 1) !== $cnt) : ?>
                    </tr>
                    <tr>
                    <? endif ?>
                    <? endfor ?>
                    </tr>
                </table>
                </td>
                <? endforeach ?>
                </tr>
            </table>
            <? endif ?>
        </div>
    </body>
</html>
0
12.12.2012, 04:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2012, 04:32
Привет! Вот еще темы с ответами:

Как уменьшить разрешение картинки? - PHP
Как уменьшить разрешение картинки до определенного размера, при загрузке на сервер

Как уменьшить размер фотографии - PHP
добрый день Ето скрить watermarka и загрузки картинок на сервер, но есть одна проблема я тут не магу сделать чтобы при добавлении...

Как уменьшить размер картинки на пхп - PHP
сделал скрипт он чет не робит подскажите что не так мне нужно уменьшить картинку 200 на 200 &lt;?php ...

Как уменьшить длину результата вычисления? - PHP
Привет, вопрос может и глупый, но тем не менее.. Вывожу на экран результат вычислений, однако он отображается слишком большим. Вопрос, как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru