0 / 0 / 0
Регистрация: 18.11.2014
Сообщений: 4
1

расскажите пожалуйста как переделать программу!

18.11.2014, 15:52. Показов 664. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Условие: Функция подбирает одного случайного пациента доктору. Всего 20 пациентов и 5 врачей . Распределить всех пациентов по врачам!

я распределил но чуть не то получилось)) расскажите как првавильно нужно сделать
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
<?php
$x=array(20);
for($i=0;$i<20;$i++)
    $x[$i]=$i;
$a=array(4);
$b=array(4);
$c=array(4);
$d=array(4);
$e=array(4);
for($i=0;$i<5;$i++)
    {   
    $a[$i]=$x[rand(0,4)];
    unset($x[$a[$i]]);
    $b[$i]=$x[rand(4,8)];
    unset($x[$a[$i]]);
    $c[$i]=$x[rand(8,12)];
    unset($x[$a[$i]]);
    $d[$i]=$x[rand(12,16)];
    unset($x[$a[$i]]);
    $e[$i]=$x[rand(16,20)];
    unset($x[$a[$i]]);
    }
for($j=0;$j<4;$j++)
echo  $a[$j]." ";
echo '/';
for($j=0;$j<4;$j++)
echo $b[$j]."  " ;
echo '/';
for($j=0;$j<4;$j++)
echo $c[$j]."  " ;
echo '/';
for($j=0;$j<4;$j++)
echo $d[$j]."  " ;
echo '/';
for($j=0;$j<4;$j++)
echo $e[$j]."  " ;
?>
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.11.2014, 15:52
Ответы с готовыми решениями:

расскажите пожалуйста как переделать программу!
Условие: Дана числовая матрица $matrix. С помощью цикла for совершить перебор матрицы. Если...

Расскажите мне пожалуйста про пути на сервере
Доброго вечера. Скрипт запускается планировщиком. date_default_timezone_set('Europe/Moscow');...

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

Подскажите пожалуйста как программу с формой переделать в консольную?
Здравствуйте! Столкнулся с такой проблемой, есть программа public partial class FormMy : Form ...

5
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
18.11.2014, 19:12 2
Решение.

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
<?php
 
/* Функция закрепления пациентов 
** за врачами.
*/
function patients_distribution() {
    
    /* Определение переменной списка.
    ** Используется для хранения
    ** индексов (номеров) пациентов
    ** которые уже были присвоены врачу.
    */
    $pat_list = array();
 
    // Перебор 5 врачей.
    for( $doc_i = 0; $doc_i < 5; $doc_i ++ ) {
 
        /* Перебор каждого из 4 пациентов.
        ** Согласно заданию, каждому врачу
        ** соответствует 4 пациента.
        */
        for( $pat_c = 0; $pat_c < 4; $pat_c ++ ) {
            
            // Случайный индекс пациента.
            $pat_i_rnd = rand(0, 19) + 1 ;
        
            // Пациент закреплен за врачем?
            if( @$pat_list[$pat_i_rnd] != 'already use' ) {
                
                /* Нет. Установка метки already use
                ** для данного пациента.
                */
                $pat_list[$pat_i_rnd] = 'already use';
                
                // Закрепление пациента за врачем.
                $doc_list['Доктор '.($doc_i+1)][] = 'Пациент '.$pat_i_rnd;
            
            } else {
                
                /* Пациент закреплен за врачем.
                ** Декремент счетчика пациента.
                ** Это необходимо.
                */
                $pat_c -- ;
                
                // Продолжить.
                continue;
            }
        }
    }
    
    // Возврат.
    return $doc_list ;
}
 
// Вывод.
print_r(patients_distribution());
 
?>
см. исходный код страницы
Код
Array
(
    [Доктор 1] => Array
        (
            [0] => Пациент 18
            [1] => Пациент 15
            [2] => Пациент 11
            [3] => Пациент 6
        )

    [Доктор 2] => Array
        (
            [0] => Пациент 13
            [1] => Пациент 16
            [2] => Пациент 5
            [3] => Пациент 4
        )

    [Доктор 3] => Array
        (
            [0] => Пациент 17
            [1] => Пациент 2
            [2] => Пациент 14
            [3] => Пациент 8
        )

    [Доктор 4] => Array
        (
            [0] => Пациент 1
            [1] => Пациент 20
            [2] => Пациент 3
            [3] => Пациент 9
        )

    [Доктор 5] => Array
        (
            [0] => Пациент 10
            [1] => Пациент 19
            [2] => Пациент 12
            [3] => Пациент 7
        )

)
Все .
1
0 / 0 / 0
Регистрация: 18.11.2014
Сообщений: 4
26.11.2014, 16:35  [ТС] 3
спасибо
0
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
26.11.2014, 17:55 4
paul-smith, если у вас изначально данные в массивах: массив пациентов и массив докторов, то можно сделать так:
PHP
1
2
3
4
5
6
7
8
9
$patients = array( /* ... */ ); // массив пациентов
$docs = array( /* ... */ ); // массив докторов
$allocation = array();
for($i = 0; $i < count($docs); $i++){
    $keys = array_flip(array_rand($patients, 4));
    $allocation[$docs[$i]] = array_intersect_key($patients, $keys);
    $patients = array_diff_key($patients, $keys);
}
print_r($allocation);
1
elnorbert
26.11.2014, 20:07
  #5

Не по теме:

Цитата Сообщение от Lazy_Den
paul-smith, если у вас изначально данные в массивах: массив пациентов и массив докторов, то можно сделать так:
В шесть раз меньше строк кода чем в моём решении :bravo:. Только можно было хоть с комментариями. Вообще крутое у Вас решение - простое какое то.

0
elnorbert
26.11.2014, 20:28     расскажите пожалуйста как переделать программу!
  #6

Не по теме:

Кликните здесь для просмотра всего текста
расскажите пожалуйста как переделать программу!


Может быть так ^ красивее? С альфа каналом в белом цвете аватарки.

0
26.11.2014, 20:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.11.2014, 20:28
Помогаю со студенческими работами здесь

Расскажите пожалуйста как организовать личный кабинет
ребята вот объясните пожалуйста как организовать личный кабинет на WP. Читал много про это даже...

Расскажите пожалуйста, как реализовать страницу для редактирования контента?
Не могу себе представить как реализовать страницу редактирования контента. Хочется чтобы было...

Пожалуйста расскажите как установить Windows 7 на Неттоп из под MS DOS!
Здравствуйте, помогите пожалуйста поставить Windows 7 Неттоп 3QShell3QNTP-ShellIHDG-B23DOS-Celeron...

Пожалуйста, расскажите как создать выпадающий список на jquery с функцией скрытия при клике за его пределами
суть задачи такова: 1) сделать выпадающий список, я сделала как здесь...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru