Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Абрамов С.А., Гнездилова Г.Г., Капустина Е.Н., Селюн М.И. Задачи по программированию [pdf]

.pdf
Скачиваний:
740
Добавлен:
02.05.2014
Размер:
6.04 Mб
Скачать

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

752. Датчики случайных чисел могут использоваться для построения на вычислительных машинах моделей сложных физических явлений. Пусть имеются два закрытых сосуда, первый из

Рис. 45

Рис. 44

которых наполнен газом, а второй пуст. Сосуды соединены трубкой, перекрытой клапаном. После того как клапан откроют, молекулы газа будут стремиться перейти из области с более высоким давлением в область с более низким давлением. Но взаимные столкновения молекул и их столкновения со стенками сосудов и трубки будут приводить к тому, что любая из молекул может изменить свое движение на противоположное, поэтому картина выравнивания давлений в первом и втором сосудах будет непростой. В начале XX века физики П. и Т. Эренфесты описали интересную модель этого явления. Первый сосуд наполнен большим количеством пронумерованных шаров, а второй сосуд пуст. Третий сосуд наполнен билетиками, пронумерованными так же, как и шары. Вытягивается наудачу билетик, затем отыскивается шар с вытянутым номером и этот шар перекладывается из того сосуда, в котором он находился в другой сосуд. Затем билетик возвращается в третий сосуд и процедура

возобновляется. Модель П. и Т. Эренфестов очень удобно реализуется программой. Разделение n воображаемых шаров по двум сосудам может быть описано, например, массивом с n элементами, равными -1 (шар в первом сосуде) и 1 (шар во втором сосуде). Вытягивание шаров легко заменить получением членов случайной последовательности с

 

1

2

...

n

 

(см. задачу 750); величину n

распределением

 

 

 

 

 

1/ n 1/ n

 

 

 

 

 

 

1/ n

 

желательно брать как можно больше, не менее 1000. Построить график или диаграмму, отмечая отношение количеств шаров в сосудах через каждые 100 шагов.

753. Датчики случайных чисел можно привлекать при подборе проверочных исходных данных для программ.

Получить с помощью датчика случайных чисел:

а) 25 действительных чисел, лежащих в диапазоне от -50 до 50; б) 30 целых чисел, лежащих в диапазоне от -20 до 20;

в) 20 неотрицательных действительных чисел, не превосходящих 40;

г) 35 неотрицательных целых чисел, не превосходящих 1000; д) 27 натуральных чисел, не превосходящих 20;

е) натуральное n, не превосходящее 30, и n действительных чисел, лежащих в диапазоне от -100 до 100;

ж) натуральные n, m, не превосходящие 20; n целых чисел, лежащих в диапазоне от -150 до 150; m неотрицательных действительных чисел, не превосходящих n;

з) 15 чисел, среди которых 7 двоек и 8 троек; и) перестановку чисел 1, …, 12, т.е. последовательность чисел

p1 ,..., p12 , в которую входит каждое из чисел 1, …, 12;

к) 28 малых латинских букв; л) 5 неповторяющихся малых латинских букв.

754. Возможно, что при решении задачи на вычислительной машине придется вначале получать члены случайной

x1...xn

 

(см.

последовательности с некоторым распределением

p ...p

 

 

 

 

 

1

n

 

задачу 750), а затем перейти к последовательности с каким-то другим распределением. Рассмотрим, например, схему такой программы проверки знаний (точнее, программы-тренажера), которая вразбивку предлагает вопросы из некоторого набора вопросов x1 , ..., xn . Вопрос выбирается случайно, вначале все вопросы равноправны и

 

x1

...

xn

. Далее можно придерживаться

распределение есть

 

 

 

 

 

1/ n ...1/ n

 

 

 

 

 

следующей стратегии. Если на вопрос pi , который предлагался самым первым, был получен правильный ответ (правильность устанавливается сравнением полученного ответа с известным ответом), то этот вопрос исключается из набора вопросов и происходит переход к распределению

 

 

x1

...

 

xi1

xi+ 1

...

xn

 

; если ответ был

 

 

 

 

 

 

 

 

 

 

 

 

 

1) ... 1/(n− 1)

1/(n− 1)

 

 

 

 

 

 

 

1/(−n

... 1/(n − 1)

 

 

 

неправильным, то объявляется правильный ответ и происходит

переход к распределению

 

 

 

 

 

 

 

x1

 

...

xi

1

xi

xi+ 1

...

 

xn

 

, т.е. как бы

 

 

 

 

 

 

 

 

 

 

 

 

 

1/(+ n

1)

...

1/(+n

1)

2 /(n+ 1)

1/(n+

1) ...

 

1/(n +

 

 

 

 

1)

 

считается, что набор теперь содержит п+1 вопрос, два из которых совпадают ( xi входит в набор с кратностью 2). В результате этого трудный вопрос будет предлагаться в дальнейшем чаще, чем более легкие. После каждого полученного ответа распределение меняется так, что если был предложен вопрос, имеющий кратность k (k > 0), и на него был получен правильный ответ, то k уменьшается на 1; если же был получен неправильный ответ, то k увеличивается на 1. Если в результате уменьшения на 1 оказалось, что k = 0, то вопрос

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

§ 24. Вычисления с некоторой точностью

755. Даны действительные числа x, ε (x 0,ε > 0).Вычислить с

точностью ε

а)

k = 0

в)

k = 0

д)

k = 0

*):

(1)k x2k + 1

 

 

 

 

 

;

 

 

 

 

k!(2k + 1)

 

 

 

 

(1)k x4k + 1

 

;

 

(2k)!(4k + 1)

 

(1)k

 

 

 

x

2k + 1

 

 

 

 

 

 

 

;

(k)!(k +

 

 

 

 

1)!

2

 

 

 

 

(1)k x4k + 3

 

 

б)

 

 

 

 

 

 

 

 

 

 

;

 

 

(2k + 1)!(4k +

3)

 

k = 0

 

 

 

 

 

(1)k

 

 

x

2(k + 1)

г)

 

 

 

 

 

 

 

 

 

 

;

 

((k + 1)!)

2

 

 

 

k =

0

 

 

2

 

 

 

 

(1)k + 1 x

 

4k

 

 

е)

 

 

 

 

 

 

 

;

 

 

 

 

 

 

 

 

 

 

k =

0

 

(2k)! 3

 

 

 

 

 

(1)k + 1 x2k 1

 

x2k

 

ж)

 

 

;

з)

 

 

 

 

.

(2k 1)!(2k + 1)!

2

k

k!

k = 0

 

k = 0

 

 

*) Смысл этого выражения применительно к бесконечным суммам был объяснен в условии задачи 119.

756. Даны действительные числа x, a, ε

(ε

>

 

0,

 

x

 

<

1).

 

 

 

 

Вычислить с точностью ε

значение 1+

a(a 1) ... (a k + 1)

x k .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k = 1

 

 

 

 

 

 

k!

 

 

 

757. Даны целое число n, действительные числа

 

 

 

x,ε (ε > 0, n 0). Вычислить с точностью ε

значение

 

 

 

 

 

 

 

 

 

 

 

 

(1)k

 

 

x n+ 2k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k = 0 (k )!(k +

n)!

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

758. Дано действительное число х. Вычислить с точностью 106 :

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

а)

 

 

 

 

;

 

 

 

 

 

б)

 

 

 

 

 

;

 

 

 

 

 

x

3

k

2

 

 

 

 

 

 

x

2

+

k

3

 

 

 

 

 

k = 1

 

 

 

 

 

 

 

 

 

 

 

 

k = 1

 

 

 

 

 

 

 

 

 

 

 

x2

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

в)

 

 

 

;

 

 

 

 

 

г)

 

 

 

 

 

;

 

 

 

 

 

k

(3/ 2)

 

 

 

 

 

 

x +

 

 

 

 

 

 

k = 1

 

 

 

 

 

 

 

 

 

 

 

 

 

k = 1

 

 

k 2

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

д)

 

 

 

 

 

;

 

 

 

 

 

е)

 

 

 

 

 

 

 

 

 

 

 

 

 

;

 

k

3

 

 

 

 

 

 

 

 

k 3 +

k x +

 

 

k = 1

 

 

 

 

 

 

 

 

 

 

 

 

k = 1

1

 

 

(1)k xk

 

 

 

 

(1)k + 1 x 4k + 2

ж)

 

 

 

 

;

 

з)

 

 

 

 

 

 

.

 

k

 

(2k + 1)!

3

k = 1

 

 

 

 

 

 

 

 

k = 1

 

 

 

 

 

 

 

759. Даны действительные числа x,

ε

 

(x 0,

ε

>

0).

Вычислить с точностью ε

бесконечную сумму и указать количество

учтенных слагаемых:

 

 

 

 

 

 

 

 

 

 

 

 

а)

 

(x)2k

 

;

 

 

 

б)

 

(1)k xk + 2

;

 

 

2k!

 

 

 

 

 

 

 

 

 

2)!

k = 0

 

 

 

 

 

 

k = 0 (k + 1)(k +

 

(1)k (k +

1)xk

 

(1)k xk

 

 

 

в)

 

 

 

 

 

;

г)

 

 

 

.

 

 

 

3

k

 

 

(k + 1)

2

 

 

 

k = 0

 

 

 

 

 

k = 0

 

 

 

 

 

 

 

760. Дано действительное число х. Последовательность

a1 , a2 , ... образована по следующему закону:

а) an =

xn

 

;

б)

an =

(1)n x2n

 

;

(2n)!

n(n + 1)(n +

2)