[ /b/ /u/ /rf/ /dt/ /vg/ /r/ /cr/ /lor/ /mu/ /oe/ /s/ /w/ /hr/ ] [ /a/ /ma/ /sw/ /hau/ /azu/ ] [ /tv/ /cp/ /gf/ /bo/ /di/ /vn/ /ve/ /wh/ /fur/ /to/ /bg/ /wn/ /slow/ /mad/ ] [ /d/ /news/ ] [ Главная | Настройки | Закладки | Плеер ]

Ответ в тред 48615. [Назад]
 [ Скрыть форму ]
Имя
Не поднимать тред 
Тема
Сообщение
Капча Капча
Пароль
Файл
Вернуться к
  • Публикация сообщения означает согласие с условиями предоставления сервиса
  • В сообщениях можно использовать разметку wakabamark
  • На данной доске отображаются исходные имена файлов!
  • Разрешенные типы файлов: pdf, music, text, code, vector, image, archive, flash, video
  • Тред перестает подниматься после 500 сообщений.
  • Треды с числом ответов более 100 не могут быть удалены.
  • Старые треды перемещаются в архив после 40 страницы.

No.48615 Ответ
Файл: 1.jpg
Jpg, 49.89 KB, 1024×600 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
1.jpg
Предлагаю челендж, где каждую неделю мы будем выполнять задания.

Придумал разные уровни сложности:
1 - как самый простой.
5 - самый сложный.

Первые задания от меня, на правах ОПа!

C3: Реализация синтезатора bytebeat, воспроизводящего аудио непосредственно с помощью OpenAL или аудио вашей платформы (e.g alsa, oss, sndio)

C2: Реализуйте последовательность Фибоначчи с помощью рекурсивного решения, но избегайте экспоненциальной временной сложности. Программа должна быть четко определена для первых 100 членов Фибоначчи. Это типичный вопрос на интервью. Haskell, Idris и Agda не могут быть использованы для этого задания, бонусные очки для выяснения, почему.

C1: Реализация программы fizzbuzz без использования оператора деления по модулю ( % , mod, rem, & c...)

Реализацию можно кидать тут под спойлером либо pastebin.

Связь дабы не проебать треад и для организации тут: @lambdaclass
>> No.49129 Ответ
Так себе идея.
>> No.49134 Ответ
>>48615
Где-то я видел уже задачу C2. Не понимаю, почему haskell не может быть использован для решения. Вот несколько решений на хаскеле. Третье не рекурсивное, но самое лаконичное и ясное. Первые два - рекурсивные, хотя рекурсивна внутренняя функция. А рекурсивной должна быть внешняя? Тогда наверное и вправду не получится избежать экспоненциальной временной сложности. Но почему именно на тех трех языках? На джаве наверное тоже не получится избежать. Или здесь я должен разбираться в тонкостях того, как исполняется хаскель, чтобы ответить?

Первые два решения дают список в "перевернутом" виде. Если нужно возвращать список в нормальном виде, тогда причина в том, как устроены списки в хаскеле.

module Fib () where

fib :: Int -> [Int]
fib 1 = [1]
fib 2 = [1,1]
fib n = innerfib [1,1] (n-2)

innerfib :: [Int] -> Int -> [Int]
innerfib arr 0 = arr
innerfib (a : b : rest) n = innerfib (a + b : a : b : rest) (n-1)

fib2 :: Int -> [Int]
fib2 1 = [1]
fib2 2 = [1,1]
fib2 n = innerfib2 (1, 1) (n-2) [1,1]

innerfib2 :: (Int,Int) -> Int -> [Int] -> [Int]
innerfib2 p 0 arr = arr
innerfib2 p n arr = case nextpair p of (a,b) -> innerfib2 (a,b) (n-1) (b:arr)

nextpair :: (Int,Int) -> (Int,Int)
nextpair (a,b) = (b, a+b)

fib3 :: Int -> [Int]
-- fib3 n = take n (map snd (iterate nextpair (1,1)))
fib3 n = (map snd . take n) (iterate nextpair (1,1))
>> No.49179 Ответ
fizzbuzz
public class FizzBuzz {
public static void main(String[] args) {
for (int i = 1, m = 4, n = 2; i <= 100; i++, m--, n--) {
if (m == 0 || n == 0) {
if (n == 0) {
System.out.print("Fizz");
n = 3;
}
if (m == 0) {
System.out.print("Buzz");
m = 5;
}
System.out.println();
} else {
System.out.println(i);
}
}
}
}
>> No.49182 Ответ
>>49179
Как не нужно делать последовательность Фибоначчи
import java.math.BigInteger;

public class Fibonacci {

private static int count = 100;

private static void step(BigInteger num1, BigInteger num2) {
count--;
if (count <= 0) {
return;
}
System.out.print(num2 + " ");
step(num2, num1.add(num2));
}

public static void main(String[] args) {
step(BigInteger.ZERO, BigInteger.ONE);
}
}
>> No.49219 Ответ
>>49182
А так?
a = 0
b = 1
c = 0
while c < 1000:
c = a + b
a = b
b = c
print(a)


Пароль:

[ /b/ /u/ /rf/ /dt/ /vg/ /r/ /cr/ /lor/ /mu/ /oe/ /s/ /w/ /hr/ ] [ /a/ /ma/ /sw/ /hau/ /azu/ ] [ /tv/ /cp/ /gf/ /bo/ /di/ /vn/ /ve/ /wh/ /fur/ /to/ /bg/ /wn/ /slow/ /mad/ ] [ /d/ /news/ ] [ Главная | Настройки | Закладки | Плеер ]