Форум Академгородка, Новосибирск > Помогите с программой!
Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Помогите с программой!
Форум Академгородка, Новосибирск > Компьютеры и сети > Программирование > WEB-программирование
olga_gold88
СКАЖИТЕ пожалуйста существует такая программа, позволяющая разложить число на сумму случайных чисел в заданном диапазоне?
Andrey537
Я думаю, что существует поискать нужно.
Tonal
Пишется минут за 5 на любом языке. smile.gif
Вот на Haskell-е
Код
import System.Random                                                                                          
import Debug.Trace                                                                                            
                                                                                                              
get_parts num bounds@(lo, hi) xx yy                                                                            
  | num == x = x:yy                                                                                            
  | num < lo && null yy = []                                                                                  
  | num < lo = get_parts (num + y) bounds xx ys                                                                
  | num < x = get_parts num bounds xs yy                                                                      
  | otherwise = get_parts (num - x) bounds xs (x:yy)                                                          
  where                                                                                                        
    x:xs = xx                                                                                                  
    y:ys = yy                                                                                                  
                                                                                                              
gen_summ :: Int -> (Int, Int) -> IO [Int]                                                                      
gen_summ num bounds = do                                                                                      
  gen <- getStdGen                                                                                            
  let rnds = randomRs bounds gen                                                                              
  return $ get_parts num bounds rnds []                                                                        

-- проверяем                                                                                                              
main = do                                                                                                      
  parts <- gen_summ 10 (1, 7)                                                                                  
  print parts


П. С. Не ясно какое отношение имеет к Web-у. Надо бы в программирование перенести.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Русская версия IP.Board © 2001-2024 IPS, Inc.