平分一個數,使得各份相乘所得到的積最大

問題:怎樣將一個正整數n,平均分成若干份,每份可以為小數,份數也可以是小數,使得這若干個數的乘積最大?每份為多少?請證明之。證明:一個正整數n,假定平均分成x份,那麼每份為,所有份數的乘積則為,令,現在問題就轉化為當x等於多少時,有最大值。為此,我們求其一階導數(其中求見補充說明):令,即很容易可以計算出:即分成n /

4行代碼計算圓周率,e,2的平方根,log(2)

   在 http://numbers.computation.free.fr/Constants 中看到幾個特別的程式,僅僅3-4行代碼,卻可以將圓周率,e(自然對數的底),log(2), 2的平方根 計算到數千位。這裡將他們貼出來,方便大家學習。   說明,本文所有程式均來自: http://numbers.computation.free.fr/Constants/TinyPrograms/tinycodes.html 。//計算2400位圓周率 int a=10000,b,c=8400

化實數為分數

  化實數為分數實數包含有理數和無理數,任何有理數都可以表示為p/q(p,q是整數,q!=0)的形式,如果指定一個分數的分母不超過某個值,對於一般的有理數或者無理數,是不可以用一個分數來準確地表示的。我們這裡主要討論,如何找出一對分數p1/q1和p2/q2,使得q1 和q2 小於給定的值n,而p1/q1和p2/q2儘可能接近一個給定的實數.。為了便於說明,我們用C++語言的格式給出問題的定義:函數介面void search( int &p1, int &q1, int &

整數平方根的計算(二)

摘要:   本文給出了另一個計算整數平方根的程式,和整數平方根的計算(一)不同,他主要使用牛頓法來求平方根,大整數運算調用GMP整數運算庫。全部的代碼能夠從http://download.csdn.net/download/liangbch/4070516 下載。   演算法:    這個程式的主要演算法是牛頓迭代法。他首先得到一個平方根的初始值,然後使用牛頓迭代法逐步求精,在計算過程中,始終用兩個整數的比表示整數平方根的值。最後,它轉換分數表示的平方根為10進位字串。   說明:

階乘之計算從入門到精通―入門篇之二

 摘要:本文採用和《大數階乘之計算從入門到精通―入門篇之一》幾乎相同的演算法思想計算階乘,和上篇不同,本文給出的程式採用一個數組元素表示4位或者9位10進位數的方法,使得計算速度更快,佔用記憶體更省。本文給出兩個計算階乘的函數,程式碼簡潔,速度也不慢。其中第一個程式在計算1萬的階乘時需約18.5K的記憶體,在迅馳1.7G筆記本用時為0.86秒 。       

階乘之計算從入門到精通-菜鳥篇

 摘要:本文給出一些最簡單的計算階乘的程式,這也是許多C語方言初學者寫出的算階乘的程式。它雖然不能正確地計算出大數階乘,但它依然有許多正確的思想。讓我們從錯誤中開始,開始一個漫長的,充滿樂趣的探索大數階乘計算之路吧… 程式1,一個最直接的計算階乘的程式#include "stdio.h"#include "stdlib.h" int main(int argc, char* argv[]){ long i,n,p; printf("n=?");

一個走迷宮的程式

    本文給出一個c語言版的走迷宮的程式。迷宮的寬和高,迷宮矩陣,迷宮的入口和出口從檔案讀入。程式首先讀入迷宮資料,然後顯示迷宮矩陣,最後調用迷宮搜尋程式找到一個路徑,並輸出。1. 迷宮的表示。迷宮用結構體MATRIX來表示包括迷宮矩陣迷宮的寬,迷宮的高,迷宮入口的座標,迷宮出口的座標。結構體定義如下:typedef struct _step{int x; //行座標int y; //列座標}STEP;typedef struct _matrix{int

階乘之計算從入門到精通-近似計算之一

 在<階乘之計算從入門到精通-菜鳥篇>中提到,使用double型數來計算階乘,當n>170,計算結果就超過double數的最大範圍而發生了溢出,故當n>170時,就不能用這個方法來計算階乘了,果真如此嗎?No,只要肯動腦筋,辦法總是有的。通過windows計算機,我們知道,171!=1.2410180702176678234248405241031e+309,雖然這個數不能直接用double型的數來表示,但我們可以用別的方法來表示。通過觀察這個數,我們發現,這個數的標記法為科學計演算法,它

系列文章-大數階算之計算從入門到精通(序)

    摘要:本系列文章將深入探討大數階乘之計算的各種演算法和實現,從最簡單的大家最容易想到的演算法,到使用各種大數乘法的版本,包括硬乘法、分治法、快速數論變換(FNT)和快速傅立葉變換(FFT)的版本,甚至還有使用組合語言寫成的迷你版,使用斯特林公式的極速版。這些系列文章不僅分析和講述演算法思想,而且給出一些版本的部分或全部代碼,並探討代碼的最佳化方法。除了重點討論自己寫的程式外,該系列文章還會對網上的一些計算大數階乘的程式和論文以及一些學術刊物上的論文。 大數階乘的計算是一個有趣的話題,從中

計算大數階乘–Fortran版

  本文給出一個使用Fortran語言的計算大數階乘的程式,該程式可以計算出1-21萬之間的數的階乘。Fortran表示公式翻譯語言,是最古老的進階語言,主要用途是科學計算,曾經很流行,但現在用的少了,他的大部分市場被C語言取代。在編寫本程式之前,我從未寫過Fortran程式,這個程式是現學現編。為了方便大家學習,我給出這個程式的一些注釋。 1. Fortran語言的一些文法特點,主要和C語言比。       1.1

階乘之計算從入門到精通―入門篇之三彙編的威力

 摘要: 本文提供了2個計算階乘的程式。第1個程式採用在C中嵌入彙編代碼的方法,改進上篇中了程式2的瓶頸部分,使速度提高到原先的3倍多。第2個程式進一步改進了演算法,在計算1萬的階乘時,比上一篇中的程式2快5-6倍,計算10000的階乘,在迅馳1.7G的僅需0.25秒。            在上一篇文章《大數階乘之計算從入門到精通-入門篇之二》中,我們給出兩個計算大數階乘的程式,其中第2個程式由於用到64位整數的除法,速度反而更慢。在本文中,我們採用在C語言中嵌入彙編代碼的方法,改進瓶頸部分,

計算大數階乘–basic版

代碼見下:OPTION BASE 1DIM buff(16000) AS LONGPRINT "calc n!"INPUT "n="; nn%rad& = 10000arrLen% = 1buff(1) = 1FOR i% = 1 TO nn% STEP 1 cc& = 0 FOR j% = 1 TO arrLen% STEP 1 tt& = buff(j%) * i% + cc& buff(j%) = tt& MOD

大人物只認得大人物……

      大人物只認得大人物,小人物只認得小人物。小人物看大人物只從他們令人仰慕的身份去看,而自己則身受不公正的蔑視。                                                                                            ——讓–雅克·盧梭      從圖書館借了一本盧梭的《懺悔錄》,在床頭放了N天一直也沒有看。今天確定去還了,還之前看了幾眼,把序和後記看了,就記住了上面的幾句話。 

階乘之計算從入門到精通-入門篇之一

摘要:本文討論如何使用一個簡單的演算法計算一個大整數的階乘,大數採用char數組儲存,一個元素表示1位10進位數。本中給出一個完整的計算大數階乘的程式,該程式在迅馳1.7G筆記本上計算10000的階乘大約2.7秒。 在《大數階乘之計算從入門到精通-大數的表示》中,我們學習了如何表示和儲存一個大數。在這篇文章中,我們將討論如何對大數做乘法運算,並給出一個可以求出一個大整數階乘的所有有效數位程式。大整數的儲存和表示已經在上一篇文章做了詳細的介紹。其中最簡單的標記法是:大數用一個字元型數組來表示,數組

計算大數階乘–Pascal版

先給出代碼:program fac;var i,j,n,len: integer; rad,c,r: longint; buff: array[1..16000] of integer; num: string[5];begin writeln('calculate n!'); write('n=?'); read(n); rad:=10000; len:=1; buff[1]:=1; for i:=1 to n do begin c:=

一個求迷宮入口到出口最近距離的程式

   本文給出一個c/c++語言版的求迷宮入口到出口的最短路徑的程式。程式的大部分使用標準c語言編寫,包括輸入和輸出。唯一用到C++庫的地方是使用STL了中的deque。迷宮的寬和高,迷宮矩陣,迷宮的入口和出口等資料從檔案讀入。程式首先讀入迷宮資料,然後更新迷宮矩陣,並求出迷宮入口和出口之間的最短路徑,並輸出最短路徑長度。1. 迷宮的表示。迷宮用結構體MATRIX來表示包括迷宮矩陣,迷宮的寬,迷宮的高,迷宮入口的座標,迷宮出口的座標。結構體定義如下:typedef struct

計算大數階乘–VB Script 版

和Basic版相比,這個版本有以下幾處不同點這次採用的不是靜態數組,而是動態數組,先定義一個數組“Dim buff()”,在運行過程中再根據需要擴充大小。計算結果沒有直接輸出,而是寫到檔案,因為當字串太長時,MsgBox的會丟失部分內容痛點:確定n!的位元是痛點,ln(n!) 可用 斯特林逼近 來計算,ln(n!)= (n+0.5)ln(n)- n + 0.5*ln(2*pi)請參考

列印整數的所有分解式

  這個題目的要求是:將一個大於1的整數寫成幾個整數乘積的形式,因為任意數和1相乘,其乘積不變,故要求分解後的數不能為1。題目要求所有的排列形式,所以12=3×4和12=4×3應該視為是兩個不同的分解式,都應當輸出。例如:對於整數n=36,其所有的分解式是36=3636=2*1836=18*236=3*1236=12*336=4*936=9*436=6*636=2*2*936=2*9*236=9*2*236=2*3*636=2*6*336=3*6*236=3*2*636=6*2*336=6*3*

整數平方根的計算(一)

      摘要:本文主要討論使用求級數和的方法來計算小整數的平方根,在記憶體空間允許的情況下,本演算法可將整數的平方根精確到任意精度。本演算法具有邏輯簡單,且無需使用大數庫等優點。另外,本演算法也相對高效,在當前主流的電腦上,計算整數的平方根到到10萬位有效數字並輸出到檔案,大約需要5秒左右的時間。本文不但給出演算法描述,也給出完整的C語言代碼,其代碼在VC和GCC下編譯通過。   

總頁數: 61357 1 .... 18683 18684 18685 18686 18687 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.