Информатика

Всё о сервере, форум!
Основы программирования
ИНФОРМАЦИОННО-РАЗВЛЕКАТЕЛЬНЫЙ ПОРТАЛ

ИНФОРМАТИКА: ЕГЭ, ТЕОРИЯ, ПРАКТИКА, ТЕСТЫ

Вам предлагается написать эффективную программу, которая будет обрабатывать результаты эксперимента,
ЕГЭ, ДОМАШНИЕ ЗАДАНИЯ > Алгоритмизация и программирование > Вам предлагается написать эффективную программу, которая будет обрабатывать результаты эксперимента,
 

Содержание заданий и решения
Example
На ускорителе для большого числа частиц производятся замеры скорости каждой из них. Скорость частицы – это целое число (положительное, отрицательное или 0). Частиц, скорость которых измерена, может быть очень много, но не может быть меньше трёх. Скорости всех частиц различны.

При обработке результатов в каждой серии эксперимента отбирается основное множество скоростей. Это такое непустое множество скоростей частиц (в него могут войти как скорость одной частицы, так и скорости всех частиц серии), для которого произведение скоростей является максимальным среди всех возможных множеств. При нахождении произведения знак числа учитывается. Если есть несколько таких множеств, то основным считается то, которое содержит наибольшее количество элементов.

Вам предлагается написать эффективную, в том числе по используемой памяти, программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет обрабатывать результаты эксперимента, находя основное множество.

Перед текстом программы кратко опишите используемый Вами алгоритм решения задачи.

На вход программе в первой строке подаётся количество частиц N. В каждой из последующих N строк записано одно целое число, по абсолютной величине не превышающее 109.

Пример входных данных:

5

123

2

-1000

0

10

Программа должна вывести в порядке возрастания номера частиц, скорости которых принадлежат основному множеству данной серии. Нумерация частиц ведётся с единицы.

Пример выходных данных для приведённого выше примера входных данных:

1 2 5
РЕШЕНИЕ:

произведение скоростей является максимальным среди всех возможных множеств

Находится произведение чисел. Если отрицательных чисел нечетное количество - максимальное среди всех отрицательных чисел исключается.

Алгоритм:

1. Находим номер нулевого элемента О

2. Считаем количество отрицательных скоростей k и номер самого максимального отрицательного числа M.

3. Выводим номера частиц, которые не совпадают с О и если количество отрицательных скоростей нечетно, то не совпадение номера частицы с M

INPUT N
O=0
M=0
MIN=0
k=0

FOR i = 1 TO N
__INPUT "Скорость частицы (по абсолютной величине не более 109", V

__IF V=0 THEN O=i END IF

__IF V<0 THEN
_____k=k+1
_____ IF MIN=0 OR V>MIN
_______THEN
_______M=i
_______MIN=V
_____ END IF
__END IF
NEXT i

FOR i = 1 TO N
__IF (i<>O) AND (k MOD 2 = 0 OR i<>M) THEN
_____ PRINT i
__END IF
NEXT i

Example
На ускорителе для большого числа частиц производятся замеры скорости каждой из них. Скорость частицы – это целое неотрицательное число. Частиц, скорость которых измерена, может быть очень много, но не может быть меньше трёх. Скорости всех частиц различны.

При обработке результатов в каждой серии эксперимента отбирается основное множество скоростей. Это непустое подмножество скоростей частиц (в него могут войти как скорость одной частицы, так и скорости всех частиц серии), такое, что сумма значений скоростей у него чётна и максимальна среди всех возможных непустых подмножеств с чётной суммой. Если таких подмножеств несколько, то из них выбирается то подмножество, которое содержит наименьшее количество элементов.

Вам предлагается написать эффективную, в том числе по используемой памяти, программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет обрабатывать результаты эксперимента, находя основное множество.

Перед текстом программы кратко опишите используемый Вами алгоритм решения задачи.

На вход программе в первой строке подаётся количество частиц N. В каждой из последующих N строк записано одно целое неотрицательное число, не превышающее 109. Все N чисел различны.

Пример входных данных:

5

123

2

1000

0

10

Программа должна вывести в порядке возрастания номера частиц, скорости которых принадлежат основному множеству данной серии. Нумерация частиц ведётся с единицы.

Пример выходных данных для приведённого выше примера входных данных:

2 3 5
РЕШЕНИЕ:

сумма значений скоростей у него чётна и максимальна среди всех возможных непустых подмножеств с чётной суммой

Находится сумма чисел. Сумма четна, если суммируются все четные числа или четное количество нечетных чисел.

При этом ноль так же исключается, так как набор должен быть минимальным.

Алгоритм:

1. Находим номер нулевого элемента О

2. Считаем количество отрицательных скоростей k и номер самого минимального отрицательного числа M.

3. Выводим номера частиц, которые не совпадают с О и если количество отрицательных скоростей нечетно, то не совпадение номера частицы с M

INPUT N
O=0
M=0
MIN=0
k=0

FOR i = 1 TO N
__INPUT "Скорость частицы (по абсолютной величине не более 109", V

__IF V=0 THEN O=i END IF

__IF V<0 THEN
_____k=k+1
_____ IF MIN=0 OR V<MIN
_______THEN
_______M=i
_______MIN=V
_____ END IF
__END IF
NEXT i

FOR i = 1 TO N
__IF (i<>O) AND (k MOD 2 = 0 OR i<>M) THEN
_____ PRINT i
__END IF
NEXT i

Example
На ускорителе для большого числа частиц производятся замеры скорости каждой из них. Скорость частицы – это целое неотрицательное число. Частиц, скорость которых измерена, может быть очень много, но не может быть меньше трёх. Скорости всех частиц различны. Скорость, по крайней мере, одной частицы нечётна.

При обработке результатов в каждой серии эксперимента отбирается основное множество скоростей. Это непустое подмножество скоростей частиц (в него могут войти как скорость одной частицы, так и скорости всех частиц серии), такое, что сумма значений скоростей у него нечётна и максимальна среди всех возможных непустых подмножеств с нечётной суммой. Если таких подмножеств несколько, то из них выбирается то подмножество, которое содержит наименьшее количество элементов.

Вам предлагается написать эффективную, в том числе по используемой памяти, программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет обрабатывать результаты эксперимента, находя основное множество.

Перед текстом программы кратко опишите используемый Вами алгоритм решения задачи.

На вход программе в первой строке подаётся количество частиц N. В каждой из последующих N строк записано одно целое неотрицательное число, не превышающее 109. Все N чисел различны. Хотя бы одно из чисел нечётно.

Пример входных данных:

3

123

0

2

Программа должна вывести в порядке возрастания номера частиц, скорости которых принадлежат основному множеству данной серии. Нумерация частиц ведётся с единицы.

Пример выходных данных для приведённого выше примера входных данных:

1 3
РЕШЕНИЕ:

сумма значений скоростей у него чётна и максимальна среди всех возможных непустых подмножеств с чётной суммой

Находится сумма чисел. Сумма не четна, если количество нечетных чисел в сумме - нечетно.

При этом ноль так же исключается, так как набор должен быть минимальным.

Алгоритм:

1. Находим номер нулевого элемента О

2. Считаем количество отрицательных скоростей k и номер самого минимального отрицательного числа M.

3. Выводим номера частиц, которые не совпадают с О и если количество отрицательных скоростей нечетно, то не совпадение номера частицы с M

INPUT N
O=0
M=0
MIN=0
k=0

FOR i = 1 TO N
__INPUT "Скорость частицы (по абсолютной величине не более 109", V

__IF V=0 THEN O=i END IF

__IF V<0 THEN
_____k=k+1
_____ IF MIN=0 OR V<MIN
_______THEN
_______M=i
_______MIN=V
_____ END IF
__END IF
NEXT i

FOR i = 1 TO N
__IF (i<>O) AND (k MOD 2 = 0 OR i<>M) THEN
_____ PRINT i
__END IF
NEXT i


Example
На ускорителе для большого числа частиц производятся замеры скорости каждой из них. Скорость частицы – это целое число (положительное, отрицательное или 0). Частиц, скорость которых измерена, может быть очень много, но не может быть меньше трёх. Скорости всех частиц различны.
В серии обязательно присутствует хотя бы одна частица с отрицательной скоростью.

При обработке результатов в каждой серии эксперимента отбирается основное множество скоростей. Это такое непустое подмножество скоростей частиц (в него могут войти как скорость одной частицы, так и скорости всех частиц серии), для которого произведение скоростей является минимальным среди всех возможных подмножеств. При нахождении произведения знак числа учитывается. Если есть несколько таких множеств, то берётся то, которое содержит наибольшее количество элементов.

Вам предлагается написать эффективную, в том числе по используемой памяти, программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет обрабатывать результаты эксперимента, находя основное множество.

Перед текстом программы кратко опишите используемый Вами алгоритм решения задачи.

На вход программе в первой строке подаётся количество частиц N. В каждой из последующих N строк записано одно целое число, по абсолютной величине не превышающее 109. Все N чисел различны.

Пример входных данных:

5

123

2

-1000

0

10

Программа должна вывести в порядке возрастания номера частиц, скорости которых принадлежат основному множеству данной серии. Нумерация частиц ведётся с единицы.

Пример выходных данных для приведённого выше примера входных данных:

1 2 3 5
РЕШЕНИЕ:

произведение скоростей является минимальным среди всех возможных подмножеств

Находится произведение чисел. Так как произведение минимально и одно число обязательно отрицательно ⇒Количество отрицательных чисел должно быть нечетно. Если отрицательных чисел четное число, то исключаем наибольшее отрицательное число.

Алгоритм:

1. Находим номер нулевого элемента О

2. Считаем количество отрицательных скоростей k и номер самого максимального отрицательного числа M.

3. Выводим номера частиц, которые не совпадают с О и если количество отрицательных скоростей четно, то не совпадение номера частицы с M

INPUT N
O=0
M=0
MIN=0
k=0

FOR i = 1 TO N
__INPUT "Скорость частицы (по абсолютной величине не более 109", V

__IF V=0 THEN O=i END IF

__IF V<0 THEN
_____k=k+1
_____ IF MIN=0 OR V>MIN
_______THEN
_______M=i
_______MIN=V
_____ END IF
__END IF
NEXT i

FOR i = 1 TO N
__IF (i<>O) AND (k MOD 2 = 1 OR i<>M) THEN
_____ PRINT i
__END IF
NEXT i

 
При копировании материала с сайта активная ссылка обязательна!
Сайт управляется SiNG cms © 2010-2015