Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.20;
Скачать: CL | DM;

Вниз

Как.?   Найти похожие ветки 

 
doob   (2007-04-16 15:38) [0]

Как перебрать все возможные варианты, логической таблици..?
Состоящей из 4-х столбцов.

0 0 0 0
1 1 1 1
1 0 0 0
1 1 0 0
1 1 1 0
0 0 0 1
0 0 1 1
0 1 1 1
0 1 1 0
1 0 0 1
1 0 1 0
0 1 0 1

Какая закономерность..? Сколько должно быть вариантов этого перебора???


 
Kolan ©   (2007-04-16 15:41) [1]

> Как перебрать все возможные варианты, логической таблици&#133?

В цикле. for, while, repeat&#133


 
Сергей М. ©   (2007-04-16 15:42) [2]


> doob   (16.04.07 15:38)


Двойка тебе в кондуит светит)


 
TUser ©   (2007-04-16 15:45) [3]

4 штуки забыл


 
homm ©   (2007-04-16 15:46) [4]

Развод?


 
alien1769 ©   (2007-04-16 15:48) [5]


> homm ©   (16.04.07 15:46) [4]
> Развод?

посмотри ветку начинающим, еще не то узнаешь.


 
boriskb ©   (2007-04-16 15:52) [6]

Это уже проявление характера.

Математику из принципа не учат.


 
doob   (2007-04-16 16:13) [7]


> TUser ©   (16.04.07 15:45) [3]

Какие?


 
alien1769 ©   (2007-04-16 16:18) [8]

Двоичная система.
2^n. Дальше сам


 
Алхимик ©   (2007-04-16 16:18) [9]

> [7] doob   (16.04.07 16:13)
>
> > TUser ©   (16.04.07 15:45) [3]
>
> Какие?

Комбинаторику учить надо было. Четыре позиции, в каждой позиции 2 варианта - 4^2 = 16


 
Алхимик ©   (2007-04-16 16:20) [10]

rem т.е. 2^4 = 16


 
tesseract ©   (2007-04-16 16:22) [11]


> Комбинаторику учить надо было. Четыре позиции, в каждой
> позиции 2 варианта - 4^2 = 16


У меня это называлось теорией чисел :-) Там было основание системы счисления в степени количества цифр.


 
Витян ©   (2007-04-16 19:56) [12]


> doob   (16.04.07 15:38)


Всего будет 2^n вариантов. В твоем случае 2^4=16.
Называется это "выборки" или "строки".
Получить их можно используя рекурсивную процедуру.

var
   a: array[1..4] of byte;
   n: byte;

procedure solve(k: byte);
var
   i: byte;
begin
   if k>4 then begin
       for i:=1 to 4 do write(a[i]," ");
       writeln;
       exit;
   end;
   a[k]:=1;
   solve(k+1);
   a[k]:=0;
   solve(k+1);
end;

begin
   solve(1);
   readln;
end.


 
palva ©   (2007-04-16 21:18) [13]

Наверно проще считать в цикле от нуля до 15 и для каждого числа печатать его двоичное представление (код неотлаженный)

var
 i, ii, j: Integer;
begin
 for i:=0 to 15 do begin
   ii := i;
   for j:=1 to 4 do begin
     if odd(ii) then write("1")
     else write("0");
     ii := ii shr 1
   end
   writeln
 end
end.


 
Витян ©   (2007-04-16 23:51) [14]


> palva ©


Тогда уж лучше так это реализовать:

const
   n = 4;
var
   mask,i: byte;
begin
   for mask:=0 to (1 shl n)-1 do begin
       for i:=0 to n-1 do write(ord(mask and (1 shl i)<>0));
       writeln;
   end;
   readln;
end.


 
palva ©   (2007-04-17 09:41) [15]

write будет печатать слова True False ?


 
Витян ©   (2007-04-17 15:11) [16]


> palva


Нет! 1 и 0


 
{RASkov}   (2007-04-17 17:50) [17]

> [15] palva ©   (17.04.07 09:41)

ORD(Boolean)... ORD(True)=1; ORD(False)=0;
:)


 
palva ©   (2007-04-17 17:56) [18]

Да, я уже заметил. Витян мне ответил и я разобрался.



Страницы: 1 вся ветка

Текущий архив: 2007.05.20;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.054 c
2-1178219110
Grande
2007-05-03 23:05
2007.05.20
Сообщение Windows о прорисовке.


2-1177232286
VegaS
2007-04-22 12:58
2007.05.20
Управление удаленным хостом через TCP/IP


2-1173078223
MZ
2007-03-05 10:03
2007.05.20
dbGridEh и CheckBox


2-1178091339
Ламер 2.Х
2007-05-02 11:35
2007.05.20
Реестр XP


15-1176918999
Kolan
2007-04-18 21:56
2007.05.20
Поменять ли видюху 6600 на 7100?