The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Перебор вариантов"
Отправлено Cforest, 20-Июл-05 19:38 
  Ihor, спасибо!

Вот какой вариант получился с рекурсией (наверное, не очень изящный - давно не программировал). Вы абсолютно правы - при рекурсии возможны проблемы со стеком. Еще раз спасибо!

#!/usr/bin/perl

sub get_element {
    my ($array, $variant) = @_;
    if ($array == $#rows) {
    for $element (0 .. $#{ $rows[$array] }) {        
        print Result join (" ", @{ $variant });
        print Result " ", $rows[$array][$element], "\n";
    }
    } else {
    for $element (0 .. $#{ $rows[$array] }) {        
        my @incomplete_variant = @{ $variant };
        push @incomplete_variant, $rows[$array][$element];
        my $inner_array = $array + 1;
        get_element($inner_array, \@incomplete_variant);
    }
    }
}      

open (List, "list.txt") or die "Can't read list $!";
while (<List>) {
    push @rows, [ split ];
}
close(List);

open (Result, "> result.txt") or die "Can't write results $!";

for $i (0..$#{ $rows[0] }) {
    my @variant;
    push (@variant, $rows[0][$i]);
    get_element(1, \@variant);
    undef @variant;
}
close (Result);

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, [email protected] (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.

На сайте действует частичное премодерирование - после публикации некоторые сообщения от анонимов могут автоматически скрываться ботом. После проверки модератором ошибочно скрытые сообщения раскрываются. Для ускорения раскрытия можно воспользоваться ссылкой "Сообщить модератору", указав в качестве причины обращения "скрыто по ошибке".



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру