Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Помогите начинающему программисту решить задачу.
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » Помогите начинающему программисту решить задачу.

Страниц (1): [1]
 

1. Slavon143 - 27 Августа, 2016 - 11:15:16 - перейти к сообщению
Задача переведена с английского.
3. "Слобода" друзей
"Слобода" есть N человек. Многие из них являются друзьями. Кроме того, интересен тот факт, что друзья друзей также друзей. Вам нужно выяснить, сколько друзей имеет конкретного человека в компании.
Входные данные
Функция должна получить следующие Params:
N - количество людей в компании
S - определенное количество человек
Матрица N строк содержат N чисел, состоящих из единиц и нулей. И блок стоит в г-й строки и j-го столбца гарантирует, что люди с номерами I и J - друзей, и 0 - выражает неопределенность.
Выходные данные
Функция должна возвращать число некоторых друзей человека с номером S, вспоминая переходную дружбу.
Пример1:
N = 3
S = 1
Матрица = 0 1 0
1 0 1
0 1 0
Результат: 2

Example2:
N = 5
S = 2
Матрица 0 0 0 0 0
0 0 1 0 0
0 1 0 0 1
0 0 0 0 1
0 0 1 1 0
Результат: 3
(Добавление)
3. Sloboda friends
Sloboda has N people. Many of them are friends. Also, interesting fact is that friends of friends are also friends. You need to find out how much friends has a particular person in the company.

Input data

Function should receive next params:
N - number of people in the company
S - a specific number of person
Matrix N lines contain N numbers consisting of ones and zeros. And the unit standing in the i-th row and j-th column ensures that people with numbers i and j - friends, and 0 - expresses uncertainty.

Output data

Function should return number of the certain friends of the person with the S number, remembering transitive friendship.

Example1:
N = 3
S = 1
Matrix = 0 1 0
1 0 1
0 1 0
Result: 2

Example2:
N = 5
S = 2
Matrix = 0 0 0 0 0
0 0 1 0 0
0 1 0 0 1
0 0 0 0 1
0 0 1 1 0
Result: 3
2. dcc0 - 27 Августа, 2016 - 13:51:40 - перейти к сообщению
Цитата:
Многие из них являются друзьями

Слово "многие" может иметь много оттенков - какие-то, большинство, почти большинство - и носит некоторый характер неопределённости.
Задача недоформулирована, на мой взгляд.
3. Sail - 27 Августа, 2016 - 17:05:13 - перейти к сообщению
Slavon143, имеется матрица смежности. Надо построить матрицу достижимости.
(Добавление)
Ну, или просто обойти граф из указанной вершины... (number S)
Например: Лекция 22[dot] Обход графов
4. skyrocker - 01 Сентября, 2016 - 12:28:36 - перейти к сообщению
Sail пишет:
Slavon143
Ну, или просто обойти граф из указанной вершины... (number S)


Наверное очевидно, но я спрошу:
S == i=j? т.е.: если S = 4 это вершина 4/4? Не понял
5. Sail - 01 Сентября, 2016 - 14:23:39 - перейти к сообщению
skyrocker пишет:
S == i=j? т.е.: если S = 4 это вершина 4/4?

Это строка 4. Ну, или столбец 4. В матрице смежности элемент 4/4 отображает наличие "петли".
Кроме того, графы могут быть ориентированными. Тогда матрица смежности может быть не симметричной (относительно главной диагонали).
6. LIME - 02 Сентября, 2016 - 17:13:18 - перейти к сообщению
https://www[dot]youtube[dot]com/watch?v=npV3mOIZJNc
посмотри лекции 4-5
просто и доходчиво и вопросы отпадут
(Добавление)
петля)) нет друзей и нет подруг я сам себе "хороший" друг))

 

Powered by ExBB FM 1.0 RC1