Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Случайные числа 
:(
    Опции темы
Rondo
Дата 11.5.2006, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 24.2.2006
Где: там..

Репутация: нет
Всего: нет



Нужен не перебор а ген.

Добавлено @ 17:57 
Цитата(Yanis @ 11.5.2006,  17:55)
Цитата(Snowy @  11.5.2006,  18:41 Найти цитируемый пост)
Так и вижу результат 1 + 1 + 1 + 24

А что этот вариант не подходит под условие?

Подходит! Считает все прально но надо как то число d разбросать по другим числам 
--------------------
Начинающий кодер  
PM MAIL ICQ   Вверх
Yanis
Дата 11.5.2006, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



а ну да  smile  


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Yanis
Дата 11.5.2006, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Можно построить таблицу со значениями. Всего лишь 216 значений при данных условях smile 


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Rondo
Дата 11.5.2006, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 24.2.2006
Где: там..

Репутация: нет
Всего: нет



Может есть какието другие способы? 
--------------------
Начинающий кодер  
PM MAIL ICQ   Вверх
Yanis
Дата 11.5.2006, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Цитата(Yanis @  11.5.2006,  19:32 Найти цитируемый пост)
построить таблицу со значениями
 


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Ripper
Дата 11.5.2006, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Lonely soul...
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 30.6.2004
Где: г. Москва

Репутация: 1
Всего: 23



незнаю у меня все быстро вычислялось т.к. числа не большие и перебор идет быстро
 


--------------------
"Он знает: надо смеяться над тем, что тебя мучит, иначе не сохранишь равновесия, иначе мир сведет тебя с ума" - Над кукушкиным гнездом
PM MAIL ICQ   Вверх
Vit
Дата 11.5.2006, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Так чуток побыстрее будет

Код

repeat 
  a:= random(9);    
  b:= random(9);    
  c:= random(9);    
until a + b + c >17;
d:=27-a-b-c;



 


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Cheburek
Дата 12.5.2006, 00:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 26.3.2006

Репутация: нет
Всего: 1



Код

type
nabor = record
      a,b,c,d:array[1..217] of integer;
end;
{....}
var my:nabor;

1 раз так
Код

procedure TForm1.Button1Click(Sender: TObject);
var i,j,m,n,k : integer;
begin
k := 1;
for i := 1 to 9 do begin 
    for j := 1 to 9 do begin
        for n := 1 to 9 do begin
            for m := 1 to 9 do begin
                if m+n+j+i = 27 then begin
                    my.a[k] := i;
                    my.b[k] := j;
                    my.c[k] := n;
                    my.d[k] := m;
                    k := k + 1;
                end;
            end;
        end;
    end;
end;
end;

а потом все время вот так
Код

Randomize;
k := random(217);
label1.Caption := inttostr(my.a[k]) + '  ' 
+ inttostr(my.b[k]) + '  ' 
+ inttostr(my.c[k]) + '  '
+ inttostr(my.d[k]) + '  ';


а вообще по условию самое нормальное...    

Это сообщение отредактировал(а) Cheburek - 12.5.2006, 00:50
PM MAIL   Вверх
Romikgy
Дата 12.5.2006, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Код

procedure TForm1.Button1Click(Sender: TObject);
function sumdec(const x: longint): longint;
var t: longint;
begin
  t:=x;
  Result:=t mod 10;
  t:=t div 10;
  Result:= Result+ (t mod 10);
  t:=t div 10;
  Result:= Result+ (t mod 10);
  t:=t div 10;
  Result:= Result+ (t mod 10);
end;
var  sl: TStringList;
i: longint;
begin
 sl:=TStringList.Create;
 for i:=1000 to 9999 do
 begin
  if (sumdec(i)=27) then sl.Add(IntToStr(i));
 end;
 ListBox1.Items.Assign(sl);
 ListBox1.Items.Insert(0,IntToStr(sl.Count));
 sl.Free;
end;

Всего 219 таких комбинаций smile 
и потом можно по рандому выводить нужную строку из листбокса smile 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Демо
Дата 12.5.2006, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

Репутация: 30
Всего: 50



Если одно число зависит от других, то оно не является случайным, что противоречит условиям задачи. 


--------------------
    
PM MAIL ICQ Skype   Вверх
Демо
Дата 12.5.2006, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

Репутация: 30
Всего: 50



Метод Guedda вполне подходит, и итераций достаточно немного для поиска:

Вот пара десятков решений этим методом, последнее число - количество итераций:

9    4    7    7    Ит:    42
9    2    8    8    Ит:    20
8    6    9    4    Ит:    2
8    9    5    5    Ит:    6
6    9    4    8    Ит:    11
5    7    9    6    Ит:    39
8    9    8    2    Ит:    49
7    9    8    3    Ит:    63
6    5    9    7    Ит:    37
9    8    3    7    Ит:    38
8    7    5    7    Ит:    13
8    7    8    4    Ит:    61
7    5    9    6    Ит:    16
9    5    7    6    Ит:    5
6    8    5    8    Ит:    8
6    6    7    8    Ит:    59
6    6    6    9    Ит:    3
7    7    7    6    Ит:    17
6    8    9    4    Ит:    7
7    8    6    6    Ит:    28
9    3    9    6    Ит:    41
7    9    7    4    Ит:    10
8    4    9    6    Ит:    46
9    8    8    2    Ит:    52
9    6    3    9    Ит:    56
9    7    6    5    Ит:    13
7    8    4    8    Ит:    3
4    9    7    7    Ит:    32
8    3    9    7    Ит:    12
7    8    8    4    Ит:    3
8    9    5    5    Ит:    10
8    4    9    6    Ит:    45
4    8    8    7    Ит:    16
7    7    8    5    Ит:    27
2    8    8    9    Ит:    2
4    7    7    9    Ит:    11
6    9    9    3    Ит:    24
1    8    9    9    Ит:    11
3    6    9    9    Ит:    61
6    6    8    7    Ит:    8
7    8    3    9    Ит:    1
6    6    7    8    Ит:    4
7    8    5    7    Ит:    10
6    9    6    6    Ит:    16
4    9    6    8    Ит:    25
7    6    8    6    Ит:    1
1    8    9    9    Ит:    10
7    9    7    4    Ит:    67
7    5    6    9    Ит:    31
9    4    8    6    Ит:    14
6    9    8    4    Ит:    58
9    7    9    2    Ит:    14
4    8    8    7    Ит:    20
9    6    7    5    Ит:    21
6    9    5    7    Ит:    2
8    2    9    8    Ит:    89
8    9    1    9    Ит:    8
2    9    9    7    Ит:    17
3    6    9    9    Ит:    32
9    9    7    2    Ит:    21
9    9    3    6    Ит:    32
7    9    9    2    Ит:    44
3    9    7    8    Ит:    12
5    7    6    9    Ит:    30
6    7    7    7    Ит:    4
5    9    4    9    Ит:    5
9    8    3    7    Ит:    29
 


--------------------
    
PM MAIL ICQ Skype   Вверх
Alexeis
Дата 12.5.2006, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Демо, Полностью согласен вычитание портит "случайность"
Если вычитать так хоть выбирать чило из которого вычитаем произвольно или раскидывать вычитаемое число на всех(в смысле вычитать из каждого некоторое число чтоб сумма сохранялась) 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Guedda
Дата 12.5.2006, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



Цитата(Демо @  12.5.2006,  11:00 Найти цитируемый пост)
Метод Guedda вполне подходит

Хм... Ну тогда и пользоваться этим методом. 


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Alexeis
Дата 12.5.2006, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Guedda, может для Демо и подходит но автор (Rondo) говорит, что ему этот способ не годится.
Цитата(Rondo @  11.5.2006,  16:56 Найти цитируемый пост)
Нужен не перебор а ген.

 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Guedda
Дата 12.5.2006, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



Хм... Так это как раз таки не перебор, а генерация случайных чисел... Функцией random... 


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1423 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.