Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Простая задачка / 5 сообщений из 5, страница 1 из 1
06.02.2011, 22:15
    #37101005
Я
Я
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простая задачка
есть 2 массива:

x = [a1,a2,a3,a4,a5]
и
y=[b1,b2]

Нужно напечатать строку состоящую из x^i y^i т е "a1 b1", "a2 b2" и т п. НО элементы массива x могут склеиваться друг с другом т е "a1 a2 b1", "a1 a3 b2 " "a1 a2 a3 a4 a5 b2 " и тп. Соотв считает что например "a1 a2 a3 b1" и "a1 a2 a3 b1" - одно и тоже (т е не зависит от порядка склеивания ). Как это описать программно ?
...
Рейтинг: 0 / 0
06.02.2011, 22:31
    #37101037
Gwa
Gwa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простая задачка
Это математическая задача?
Тогда выражайтесь точно и нормальным языком.
Где в каком разделе математики Вы нашли операцию "склеивания" ?
...
Рейтинг: 0 / 0
07.02.2011, 00:34
    #37101184
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простая задачка
...
Рейтинг: 0 / 0
07.02.2011, 15:35
    #37102412
Algol36
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простая задачка
Я Как это описать программно ?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
using System;
using System.Collections.Generic;

namespace ConsoleApplication62
{
    class Program
    {
        static void Main(string[] args)
        {
            var a = new string[]{"a1", "a2", "a3", "a4", "a5"};
            var b = new string[]{"b1", "b2"};
            foreach (var s in BuildItems(a, b))
                Console.WriteLine(s);
            Console.ReadLine();
        }

        static IEnumerable<string> BuildItems(string[] a, string[] b)
        {
            long maxA = (long)Math.Pow(2, a.Length);
            for (long i=1; i<maxA; i++)
            {
                long mask = i;
                string resultA = "";
                for(int k=0;k<a.Length;k++)
                {
                    if((mask & 1) == 1)
                        resultA += a[k];
                    mask = mask >> 1;
                }

                for (int j = 0; j < b.Length; j++)
                    yield return resultA + b[j];
            }
        }
    }
}
...
Рейтинг: 0 / 0
09.02.2011, 14:30
    #37106810
OKM
OKM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простая задачка
автор, если задача простая, зачем вы тут спрашиваете?
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Простая задачка / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]