Статьи Галерея Форум Чат Файлы HowTo Ссылки Поиск
Текущее время: 06 дек 2019, 21:52




Начать новую тему Ответить на тему  [ Сообщений: 53 ]  На страницу 1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Форум о программировании ;-))
СообщениеДобавлено: 08 авг 2002, 18:23 
Неотъемлемая часть форума
Аватара пользователя

У нас с: 20.06.2002
Сообщения: 827
Откуда: Брюссель
class Fact { // факториал на Java
  public static void main(String[] args){
     System.out.println(getFactorial(6));
  }

  private static int getFactorial(int n){
     if (n == 0){
        return 1;
     } else {
        return n * (getFactorial(n-1));
     }  
  }
}

_________________
Изображение


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения: Форум о программировании ;-))
СообщениеДобавлено: 08 авг 2002, 18:24 
Неотъемлемая часть форума
Аватара пользователя

У нас с: 20.06.2002
Сообщения: 827
Откуда: Брюссель
#!/bin/sh

# Шелл - это еще и язык программирования ;-))

function factorial(){
  if test $1 = "0"
  then
     echo 1
  else
     echo $(($1*`factorial $(($1-1))`))
  fi
}

factorial 6

_________________
Изображение


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения: Форум о программировании ;-))
СообщениеДобавлено: 08 авг 2002, 18:32 
Неотъемлемая часть форума
Аватара пользователя

У нас с: 20.06.2002
Сообщения: 827
Откуда: Брюссель
#!/usr/bin/perl

sub factorial {
  my $n = shift ; # ну шо ета за argument passing?

  if ($n==0){
     1
  }else{
     $n * factorial($n-1)
  }
}

print factorial(6), "\n";

_________________
Изображение


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения: Форум о программировании ;-))
СообщениеДобавлено: 08 авг 2002, 18:42 
Неотъемлемая часть форума
Аватара пользователя

У нас с: 20.06.2002
Сообщения: 827
Откуда: Брюссель
-- 3 способы на Haskell

-- самый неэффективный однако
fac1 :: Int -> Int
fac1 n = product[1..n]

fac2 :: Int -> Int
fac2 0 = 1
fac2 (n+1) = (n+1) * fac3 n

-- самый эффективный
fac3 :: Int -> Int
fac3 0 = 1
fac3 n = n * fac2 (n-1)

_________________
Изображение


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения: Форум о программировании ;-))
СообщениеДобавлено: 08 авг 2002, 18:46 
Неотъемлемая часть форума
Аватара пользователя

У нас с: 20.06.2002
Сообщения: 827
Откуда: Брюссель
;; вариант на Scheme

(define factorial
  (lambda    
     (a)
     (if
        (<= a 0)  
           1
           (* a (factorial (- a 1)))
     )
  )
)

(display  (factorial 6))
(newline)

_________________
Изображение


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения: Форум о программировании ;-))
СообщениеДобавлено: 08 авг 2002, 18:52 
Неотъемлемая часть форума
Аватара пользователя

У нас с: 20.06.2002
Сообщения: 827
Откуда: Брюссель
;; Cxема еще раз - в прошлом посте смайлик сработал

(define factorial
  (lambda    
     (a)
     (if
        (<= a 0)  
           1
           (* a (factorial (- a 1)))
     )
  )
)


(display "factorial of 4: ")
(display  (factorial 4))
(newline)

_________________
Изображение


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения: Форум о программировании ;-))
СообщениеДобавлено: 08 авг 2002, 18:53 
Неотъемлемая часть форума
Аватара пользователя

У нас с: 20.06.2002
Сообщения: 827
Откуда: Брюссель
WANTED:
Python
tcl
OCaml
php
Prolog


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения: Форум о программировании ;-))
СообщениеДобавлено: 08 авг 2002, 21:05 
Маньяк

У нас с: 28.05.2002
Сообщения: 198
Откуда: Espoo, Finland
Та же хвостовая рекурсия, как и в случае с Haskel, но на Ruby:
# Tail recursion version                                                                                    
# Reference: http://www.shugo.net/article/cmagazine/3rd/   (Japanese)                                      
def fact_(prod, count, max)                                                                                
 if( count > max )                                                                                        
   prod                                                                                                    
 else                                                                                                      
   fact_(count * prod, count + 1, max)                                                                    
 end                                                                                                      
end                                                                                                        
                                                                                                           
def fact(n)                                                                                                
 fact_(1,1,n)                                                                                            
end                                                                                                        

_________________
/ AB


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения: Форум о программировании ;-))
СообщениеДобавлено: 08 авг 2002, 22:57 
Млин, маньяки! А где факториал на Асме? :)


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Форум о программировании ;-))
СообщениеДобавлено: 09 авг 2002, 21:47 
напиши...
времени с nasm'ом разбираться нет...


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Форум о программировании ;-))
СообщениеДобавлено: 10 авг 2002, 10:08 
;; чисто логическая реализация - должна работать везде
;; т.к. мы пользуемся только логическими структурами
;;

;; определим предикат для натуральных чисел n (X)
;; 0 -> 0
;; s(0) -> 1
;; ... (число может выражаться не только цифрами)
n (0).
n (s(X)) -> n (X).

;; определим предикат сложения для plus X + Y==Z
;; (он же предикат вычитания)
plus (0,Y,Y) .
plus (s(X), Y, s (Z)) -> plus (X,Y,Z).

;; теперь умножение (оно же деление)
mult (0,X,0).
mult (s(X),Y,Z) -> mult (X,Y,W), plus (W,Y,Z).

;; ну все теперь долгожданный
factorial (0, s(0)).
factorial (s(N), F) -> factorial (N, F1), mult (s(N), F1, F).



думаю на турбо прологе можно реализовать что-то поэффективнее,
но это не относится к языку в целом


2ab а в Ruby, что есть оптимизация хвостовой рекурсии?


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Форум о программировании ;-))
СообщениеДобавлено: 10 авг 2002, 10:10 
надеюсь вы догадались, что это на Прологе

для тех кого заинтересовало см. Стерлиг и Шапиро Искусство Программирования на языке Пролог

;0


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: О программировании ;-))
СообщениеДобавлено: 11 авг 2002, 13:22 
Неотъемлемая часть форума
Аватара пользователя

У нас с: 06.02.2002
Сообщения: 9760
Откуда: Менск
Пипл, судорожно вспоминнаю PL/1... К утру будет.

_________________
Опыт растет прямо пропорционально выведенному из строя оборудованию


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения: О программировании ;-))
СообщениеДобавлено: 11 авг 2002, 22:03 
Неотъемлемая часть форума
Аватара пользователя

У нас с: 20.06.2002
Сообщения: 827
Откуда: Брюссель
А вот и Сергей с Прологом.
Реализации на других языках понятны, имхо,
даже для тех, кто не знает их. А вот Пролог....... ;-)

_________________
Изображение


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения: О программировании ;-))
СообщениеДобавлено: 12 авг 2002, 13:25 
Неотъемлемая часть форума
Аватара пользователя

У нас с: 20.06.2002
Сообщения: 827
Откуда: Брюссель
# tcl версия предоставлена  tren

proc factorial {a} {
   if {$a == 0} {
return 1
   } else {
return [expr $a * [factorial [expr $a - 1]]]
   }
}
puts [factorial 4]

_________________
Изображение


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 53 ]  На страницу 1, 2, 3, 4  След.


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
[ All resources are available under GNU GPL ] [ Support ] [ Hosted by DataHata | MyCloud.by ] [ Powered by phpBB® Forum Software © phpBB Group ]

LVEE Winter LVEE Rambler's Top100