IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Reply to this topicStart new topic
> Матрица, как задать на Basic
izrukvruki
сообщение 22 Mar 2021, 09:56 (Сообщение отредактировал izrukvruki - 22 Mar 2021, 09:56)
Сообщение #1

Князь Бореи
Сообщений: 5 171
Спасибо сказали: 1349 раз




Подскажите, каким образом можно задать матрицу размера (n, 2^n) следующего вида (при n=4)
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1

Желательно на бейсике...
Спасибо!
Go to the top of the pageAdd Nick
 
+Quote Post
feanor
сообщение 22 Mar 2021, 10:15
Сообщение #2

laughed as one fey
Сообщений: 12 166
Спасибо сказали: 20585 раз




Не на бейсике
Код
using System;
                    
public class Program
{
    public static void Main()
    {
        const int n = 4;
        
        int width = n;
        int height = 1 << n;
        int[,] matrix = new int[width,height];
        
        for(int i = 0; i < width; i++)
        {
            for(int j = 0; j < height; j++)
            {
                matrix[width-1-i,j] = (j >> i) & 1;
            }
        }
        
        //вывод
        for(int j = 0; j < height; j++)
        {
            for(int i = 0; i < width; i++)
            {
                Console.Write(matrix[i,j]);
            }
            Console.WriteLine();
        }
    }
}



Код
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111

Go to the top of the pageAdd Nick
 
+Quote Post
izrukvruki
сообщение 22 Mar 2021, 13:29
Сообщение #3

Князь Бореи
Сообщений: 5 171
Спасибо сказали: 1349 раз




лихо... но надо на VB...
а эта строка
Код
matrix[width-1-i,j] = (j >> i) & 1;

что делает?
Go to the top of the pageAdd Nick
 
+Quote Post
tolich
сообщение 22 Mar 2021, 14:58
Сообщение #4

😸🧡✊✌️
Сообщений: 16 027
Спасибо сказали: 2672 раза




Выделяет из двоичной записи числа j бит с номером i, где i=0..n-1 и записывает его в матрицу по указанным индексам.
Буквально: сдвинуть j на i разрядов вправо и взять младший бит результата.

А 1 << n возводит 2 в степень n путём сдвига 1 влево на n разрядов.


--------------------
Я слежу за тобой!
* tolic.narod.ru

Lu...pa...gamhi...dho?


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
izrukvruki
сообщение 26 Mar 2021, 11:00
Сообщение #5

Князь Бореи
Сообщений: 5 171
Спасибо сказали: 1349 раз




мне подсказали, что на бейсике это будет выглядеть так:
Код
(j/(2^i)) and 1

но все равно я смысл этого не понял, тупо написал...

Задача решена. Спасибо!
Go to the top of the pageAdd Nick
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 27 April 2024 - 16:48
Copyright by Алексей Крючков
Strategy Gamez by GrayMage
Programming by Degtyarev Dmitry
  Яндекс.Метрика