Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2002.07.04;
Скачать: [xml.tar.bz2];

Вниз

Вот такая задачка (сам придумал) ;-)   Найти похожие ветки 

 
Igorek   (2002-06-02 08:06) [0]

Дано:
Числа N и K.
Масивы A[N] и B[N], случайным образом заполненные значениями 0 и 1.
Функция function f(i: Integer): Boolean, про которую известно, что она:
1) возвращает true если масивы А и В одинаковы и false - если нет.
2) если аргумент в дипазоне от 1 до К, тогда:
в зависимости от аргумента инвертирует значения определенных элементов масива А (каких именно - однозначно зависит от аргумента)
если нет, то ничего не делает

Требуется:
Добиться от функции f возвращения true минимальным числом ее вызовов (если это возможно).
Прямого доступа к массивам А и В нет.
С фукцией f можно предварительно потренироваться.

Еще сам не решил ;-)


 
Igorek   (2002-06-03 15:12) [1]

Эй где вы, любители крепких орешков? MBo, MrSimm?
Мне уж самому эта задачка все больше начинает нравиться :-)


 
Виктор Щербаков   (2002-06-03 15:31) [2]

ИМХО, очень мало известно о функции f. Вернее о зависимости номеров инвертируемых элементов массива от аргумента.


 
VictorT   (2002-06-03 15:37) [3]

Я так понял, это получается задачка про "чёрный ящик", которым и является функция f. Её не всегда можно однозначно решить.


 
SPeller   (2002-06-03 15:38) [4]

for i:=n downto 1 do
if a[i]<>b[i] then f(i);



 
SPeller   (2002-06-03 15:39) [5]

Здесь имеется ввиду что ф-я f инвертирует эл-ты от 1 до i


 
SPeller   (2002-06-03 15:40) [6]

Хотя можно инвертировать только эл-т с номером i


 
VictorT   (2002-06-03 15:51) [7]


> SPeller © (03.06.02 15:38)

А в условии сказано, что прямого доступа к массивам нет.


 
SPeller   (2002-06-03 15:59) [8]

Тогда перебирааем все возможные комбинации, с которыми могут случайным образом заполниться массивы.


 
Igorek   (2002-06-03 16:34) [9]

Я думаю известно достаточно, если вчитаться.
1) Инвертировать напр. A[1] - значит A[1] = 1 - A[1]
2) Функция f инвертирует значения определенных элементов масива А (каких именно - однозначно зависит от аргумента


 
Igorek   (2002-06-03 16:39) [10]

Я бы даже ужесточил условие: никаких тренировок с f, все вызовы считаются.

Кроме того перебрать варианты - это не решить задачу.
Надо определить кратчайшую последовательность вызовов f и параметр в каждом случае.


 
Igorek   (2002-06-03 17:05) [11]

Уточню, во избежание недоразумений.
Известны числа N и K, масивы A[N] и B[N].


 
SPeller   (2002-06-03 19:11) [12]

И всё равно задание твоё непонятное. Допустим N>K тогда если эл-ты массива выше К разные, то никаким макаром мы их не уравняем. А посчитать параметр и вычислить сколько раз - это ты сам будешь считать в зависимости от содержания массивов и их размерности. Здесь всё относительно.

Да и вообще, зачем мозги парить? На практике всё-равно такое не встречается.


 
Igorek   (2002-06-03 19:23) [13]

2SPeller
Очень даже полезная практически задачка.



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2002.07.04;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.004 c
14-9990
Dark
2002-06-03 19:00
2002.07.04
Декомпиляция программы.


1-9891
Gamar
2002-06-18 14:34
2002.07.04
Текст под углом


1-9820
HitMan
2002-06-24 14:13
2002.07.04
Текст в формате RMA


4-10044
MK
2002-05-03 17:19
2002.07.04
Окно свойств файла(ов) как в проводнике


1-9911
Александр
2002-06-22 17:40
2002.07.04
ShellTreeView1 и FileListBox





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский