Форум программистов, компьютерный форум CyberForum.ru

Брутфорс (brute force) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 28, средняя оценка - 4.64
iryde
0 / 0 / 0
Регистрация: 02.01.2013
Сообщений: 15
18.05.2013, 21:16     Брутфорс (brute force) #1
Мне нужно получить все возможные комбинации 4 чисел. Сумма чисел должна быть ровна 1. Тоесть нужно следующее:

0 0 0 1
0 0 0,1 0,9
0 0 0,2 0,8
0 0 0,3 0,7
0 0 0,4 0,6
....
Помогите пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2013, 21:16     Брутфорс (brute force)
Посмотрите здесь:

Особенности разных типов SSD от CORSAIR (Force 3, Force GT, Perfomance Pro) SSD
Брутфорс Delphi
Брутфорс WPA2 C++
Java SE Брутфорс
Brute client Delphi
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
yleart
 Аватар для yleart
60 / 45 / 1
Регистрация: 07.10.2011
Сообщений: 139
18.05.2013, 22:23     Брутфорс (brute force) #2
Если использовать числа из [0, 1] то их перебрать невозможно по теореме Кантора :
Теорема Кантора: множество всех действительных чисел отрезка [0,1] не счётно (континуум)
iryde
0 / 0 / 0
Регистрация: 02.01.2013
Сообщений: 15
18.05.2013, 22:32  [ТС]     Брутфорс (brute force) #3
шаг = 0.1

Добавлено через 5 минут
Цитата Сообщение от yleart Посмотреть сообщение
Если использовать числа из [0, 1] то их перебрать невозможно по теореме Кантора :
шаг = 0.1
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
18.05.2013, 22:39     Брутфорс (brute force) #4
В чем, собственно, проблема? Умножьте на 10, пусть будут числа от 1 до 9 и в сумме должно быть 10. Потом просто поделите на 10 получившиеся результаты.
iryde
0 / 0 / 0
Регистрация: 02.01.2013
Сообщений: 15
18.05.2013, 22:45  [ТС]     Брутфорс (brute force) #5
Цитата Сообщение от Toshkarik Посмотреть сообщение
В чем, собственно, проблема? Умножьте на 10, пусть будут числа от 1 до 9 и в сумме должно быть 10. Потом просто поделите на 10 получившиеся результаты.
Ок. Предположим умножаем на 10. Как создать масив?

0 0 0 10
0 0 1 9
0 0 8 2
...
шаг = 1. сума элементов строки должна ровняться 10.

буду очень благодарен за код.
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
18.05.2013, 23:37     Брутфорс (brute force) #6
Методом перебора это делается.
C++
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
//
#include <iostream>
using std::cout;
using std::endl;
 
int main()
{
    cout <<"nachalo"<<endl;
    for(double i=0;i<=10;i++)
        for(double j=0;j<=10;j++)
            for(double p=0;p<=10;p++)
            {
                for(double k=0;k<=10;k++)
                {
                    if((10-k-p-i-j)==0)
                    {
                        cout <<i<<':'<<j<<':'<<p<<':'<<k<<endl;
                    }
                    else
                        continue;
                }
            }
 
    return 0;
}
Добавлено через 4 минуты
Кому интересно сколько билетов нужно купить в лотерею, чтобы 100% выиграть. 6 из 36 щас посмотрим сколько билетов нужно купить.

Добавлено через 7 минут
От подсчет количества билетов
У меня результат вышел 2.56573e+009 это значит 2.56573 * 10 в 9 степени? чото меня два нуля перед 9 смущают?
C++
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
//
#include <iostream>
using std::cout;
using std::endl;
 
int main()
{
    double count=0;
    cout <<"nachalo"<<endl;
    for(double i=0;i<=36;i++)
        for(double j=0;j<=36;j++)
            for(double p=0;p<=36;p++)
                for(double k=0;k<=36;k++)
                    for(double r=0;r<=36;r++)
                        for(int c=0;c<=36;c++)
                        {
                        //  cout <<i<<' '<<j<<' '<<p<<' '<<k<<' '<<r<<' '<<c<<endl;
                            count++;
                        }
 
 
    cout <<"colichectvo biletov= "<<count<<endl;//2.56573e+009
 
    return 0;
}
Короче 2500 000 000 билетов и 100% ваш джек пот
vlad_light
18.05.2013, 23:52     Брутфорс (brute force)
  #7

Не по теме:

Короче 2500 000 000 билетов и 100% ваш джек пот
Зачем так много?! Хватит и 1947792 билетов!

Yandex
Объявления
18.05.2013, 23:52     Брутфорс (brute force)
Ответ Создать тему
Опции темы

Текущее время: 18:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru