
06.04.2010, 20:53
|
|
Участник форума
Регистрация: 07.09.2008
Сообщений: 139
С нами:
9302285
Репутация:
65
|
|
поиск значения по номеру
Добрый всем вечер!
Есть интересная мысль, но не получается один алгоритм, прошу помощи.
Задача такая:
есть некоторый словарь A=['a','s','d','f','g','h''j','k','l',';'] - это массив любой длинны (длина массива L) и любого содержания, есть комбинация из N элементов этого массива.
и того у нас есть N^L комбинаций
если длина комбинации, например, 2 то:
Код:
aa
as
ad
af
ag
ah
aj
ak
al
a;
sa
ss
sd
sf
.....
И нужно по номеру комбинации (например 15) найти саму комбинацию.
Для такого числа это на глаз понятно, но речь идёт о дине комбинации > 20, а массива A > 40.
Нужна формула...
|
|
|

06.04.2010, 21:09
|
|
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
С нами:
8680278
Репутация:
17
|
|
Соурс давай, тут тебе не экстрасенсы 
|
|
|

06.04.2010, 21:33
|
|
Участник форума
Регистрация: 07.09.2008
Сообщений: 139
С нами:
9302285
Репутация:
65
|
|
cheater_man, =) к сожалению, что-бы начинать писать данный код мне нужна формула. без неё вся идея коту под хвост. прям загадка - второй день голову ломаю.
|
|
|

06.04.2010, 22:17
|
|
Постоянный
Регистрация: 29.10.2008
Сообщений: 306
С нами:
9227388
Репутация:
180
|
|
Byte_, все не так сложно как кажется
_http://ru.wikipedia.org/wiki/Позиционная_система_счисле ния
|
|
|

06.04.2010, 22:24
|
|
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
С нами:
8680278
Репутация:
17
|
|
Типо этого что-ли?
яп С#.net
Код:
using System;
using System.Collections.Generic;
using System.Text;
namespace brute1
{
class Program
{
public char[] mass ={'a','b','c','d' };
static void Main(string[] args)
{
Program pr = new Program();
for (int i = 0; i<pr.mass.Length; i++)
{
for (int j = 0; j <pr.mass.Length; j++)
{
Console.WriteLine("->" + pr.mass[i] + pr.mass[j]);
}
}
Console.ReadLine();
}
}
}
|
|
|

07.04.2010, 00:13
|
|
Новичок
Регистрация: 28.01.2010
Сообщений: 15
С нами:
8570766
Репутация:
17
|
|
C#
Код:
...
Dictionary<int, string> myDict = new Dictionary<int, string>();
...
myDict.add(1,"Первый");
myDict.add(2,"Второй");
...
myDict.add(100,"Сотый");
...
Console.WriteLine(myDict[3]);
Выведет на консоль "Третий".
|
|
|

07.04.2010, 00:18
|
|
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
С нами:
8680278
Репутация:
17
|
|
Да вот правильно говорит 0kt0ber ArrayList нужно создавать! С ним попроще будет 
|
|
|

07.04.2010, 11:49
|
|
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
С нами:
10653446
Репутация:
836
|
|
Сообщение от cheater_man
Да вот правильно говорит 0kt0ber ArrayList нужно создавать! С ним попроще будет 
какой в баню стремный ArrayList? там Dictionary если что.
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
|
|
|

07.04.2010, 12:04
|
|
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
С нами:
8680278
Репутация:
17
|
|
Сообщение от W!z@rD
какой в баню стремный ArrayList? там Dictionary если что.
Ты что думаешь , что он сгенерит эти 1,099511627776e+52, потом запишет в файл
Да ну в файл то он запишет, вот только открывать придется на mainfram'е 
|
|
|

07.04.2010, 00:44
|
|
Постоянный
Регистрация: 29.10.2008
Сообщений: 306
С нами:
9227388
Репутация:
180
|
|
cheater_man, 0kt0ber, вы хотите все возможные комбинации сначала сгенерировать и пронумеровать, чтобы потом получить нужную комбинацию по номеру? )
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|