Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Sergey Politov                       2:5015/176.18  12 Jan 2002  05:43:26
 To : Andrew Plyako
 Subject : Re: дайте алгоритм, plz!
 -------------------------------------------------------------------------------- 
 
 
 До меня дошли слухи, что *10.01.02* *6:28:06* пролетало сообщение
 от Andrew к *Sergey Popkov* про *"дайте алгоритм, plz!"*. И я решил вмешаться.
 
 [...]
 
  AP> function MyRandom(const Range: byte; const NotInclude: set of byte):
  AP> byte; { NotInclude - множество чисел, которые нельзя получить в качестве
  AP> ответа   Range - мощность target-множества,           то есть 100 минус
  AP> число элементов в NotInclude              } var i, result: byte; begin
  AP> // Если не ошибаюсь, random выдает число от 0 до X-1.   result :=
  AP> random(Range)+1;   i := 1;   while i<= result do    begin     if i in
  AP> NotInclude then inc(result);     inc(i);    end;    MyRandom := result;
  AP> end;
 
  AP> Таким образом, сама программа выглядит так: NotInclude := []; for i:=1 to
  AP> 100 do   begin    CurCell := MyRandom(101-i, NotInclude);    Ячейку i
  AP> оригинальной матрицы записать в ячейку CurCell итоговой матрицы;
  AP> NotInclude := NotInclude + [CurCell];   end;
 
   Идея конечно интересная, но не универсальная, что ты будешь делать, когда у
 тебя 
 массив будет размером 100 на 100? Я конечно понимаю, что предложенную задачу ты
 
 решил, но мне кажется твою идею можно модернизировать.
 
 заводим вспомогательный массив temp. Заполняем его 1.
 теперь наш MyRandom выглядит так.
 
 function MyRandom(r: integer; var temp: array of byte): integer; 
 var i,p: integer; 
 begin
   i:= random(r)+1; p:= 0;
   repeat
     dec(i,temp[p]);
     inc(p);
   until i=0;
   dec(p);
   temp[p]:= 0;
   MyRandom:= p;
 end;
 
 Вроде все правильно.
 
 np: Nightwish "Dead Boy's Poem"
 
 Искренне Ваш
                Sergey Politov
 
 --- WP/95 Rus 1.78 Релиз 1  Reg.
  * Origin: Heavy Metal is the Law. (2:5015/176.18)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 дайте алгоритм, plz!   Sergey Popkov   09 Jan 2002 02:59:43 
 Hа: дайте алгоритм, plz!   Alex Chudnovsky   09 Jan 2002 14:44:12 
 дайте алгоритм, plz!   Andrew Plyako   10 Jan 2002 07:28:06 
 Re: дайте алгоритм, plz!   Sergey Politov   12 Jan 2002 05:43:26 
 Re: дайте алгоритм, plz!   Sergey Politov   10 Jan 2002 06:08:52 
 дайте алгоритм, plz!   Andrew Plyako   11 Jan 2002 01:30:44 
 Re: дайте алгоритм, plz!   Sergey Politov   12 Jan 2002 05:31:04 
 дайте алгоритм, plz!   Andrew Plyako   13 Jan 2002 01:49:00 
 Re: дайте алгоритм, plz!   Sergey Politov   14 Jan 2002 05:51:37 
 дайте алгоритм, plz!   Andrew Plyako   14 Jan 2002 16:15:44 
 Re: дайте алгоритм, plz!   Sergey Politov   15 Jan 2002 05:07:06 
 Re^2: дайте алгоритм, plz!   Sergey Politov   12 Jan 2002 09:35:44 
 Re: дайте алгоритм, plz!   Vasily Shmelev   10 Jan 2002 18:25:23 
 дайте алгоритм, plz!   Nickita A Startcev   10 Jan 2002 22:36:00 
 дайте алгоритм, plz!   Anton Dorofeev   11 Jan 2002 14:48:20 
Архивное /ru.algorithms/39911d1ebb0b.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional