ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

06.04.2010, 20:53
|
|
Участник форума
Регистрация: 07.09.2008
Сообщений: 139
Провел на форуме: 351188
Репутация:
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
Провел на форуме: 709575
Репутация:
17
|
|
Соурс давай, тут тебе не экстрасенсы 
|
|
|

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

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

06.04.2010, 22:24
|
|
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
Провел на форуме: 709575
Репутация:
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
Провел на форуме: 52119
Репутация:
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
Провел на форуме: 709575
Репутация:
17
|
|
Да вот правильно говорит 0kt0ber ArrayList нужно создавать! С ним попроще будет 
|
|
|

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

07.04.2010, 00:52
|
|
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
Провел на форуме: 709575
Репутация:
17
|
|
Сообщение от M_script_
cheater_man, 0kt0ber, вы хотите все возможные комбинации сначала сгенерировать и пронумеровать, чтобы потом получить нужную комбинацию по номеру? )
нет нумеровать не обязательно, если через ArrayList делать, он сам пронумерует.Просто генерим комбинацию и записываем в массив 
|
|
|

07.04.2010, 01:17
|
|
Постоянный
Регистрация: 29.10.2008
Сообщений: 306
Провел на форуме: 1819761
Репутация:
180
|
|
Сообщение от cheater_man
Просто генерим комбинацию и записываем в массив 
речь идёт о дине комбинации > 20, а массива A > 40.
А ничего, что 20^40 == 1,099511627776e+52 ? 
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|