Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2010, 03:46   #1
mia34933
Новичок
Джуниор
 
Регистрация: 09.12.2010
Сообщений: 1
По умолчанию Где ошибка?

Есть такая задача:N человек пишут свои имена на бумажках.Всех зовут по разному.В мешок кладут бумажки,тасуют.Каждый вытаскивает по бумажке,то что взяли из мешка,обратно не возвращают.Какова вероятность того что никто не вытащит себя?Решить тремя способаи:1.через формулу(рекурсия),2.перебором всех вариантов,3.через статистическое моделирование.
Есть решение,преподаватель говорит что только третий вариант верен,где ошибка?

Код:
var
 N: integer;     
 i,             
 K,             
 f: longint;    
 p: Real;        
 m: set of byte;
 r: byte;      
 b: boolean;    

Function terver(G: integer):Real;
Begin
 if G=1 then terver:=1 else
  terver:=(G-1)/G * terver(G-1);
End;

begin
Readln(N);
 Writeln;
 p:=terver(N); 
 Writeln('вероятность: ',p*100:3:2,'%');
 Writeln;
 if N<13 then 
  Begin
   f:=1;
   For i:=1 to N do 
    f:=f*i;
   Writeln;
   p:=0;            
   For i:=1 to f do
    Begin
     if i mod N = 0 then p:=p+1; 
    End;
   p:=p/f;       
   writeln('вероятность: ',p*100:3:2,'%');
  End else Writeln(( N=12)!');
 Writeln;
 Readln(K);
 Randomize;         
 p:=0;
 For f:=1 to K do   
  Begin
   m:=[];           
   b:=false;        
   For i:=1 to N do 
    Begin
     repeat          
      r:=random(N)+1;
     until not (r in m);
     m:=m+[r];     
     if r=i then b:=true;
    End;
   if b then p:=p+1; 
  End;
 p:=1 - p/K;         
 writeln(': ',p*100:3:2,'%');
 Readln;
end.


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 09.12.2010 в 08:09.
mia34933 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
где-то ошибка... rapgamer Помощь студентам 6 03.06.2010 12:31
где ошибка? tanyhaftv Помощь студентам 2 24.03.2010 16:07
Где ошибка? [Smarik] Общие вопросы Delphi 5 01.04.2008 09:56
Где ошибка? jarded Общие вопросы C/C++ 2 01.06.2007 15:10