ランド()関数
(ボイド)のrand()関数のプロトタイプintランドは、それが0からRAND_MAX(RAND_MAX C言語の標準ライブラリが<STDLIB.H> 32767すなわち0x7FFFをマクロで定義されている)の整数を返します
しかし、唯一のランドとの()関数rand()関数から計算固定式(シードと呼ばれる)の数に基づいているが、コンピュータがオンになっているので、シード値が与えられ、その結果が一定で返しますアップ、結果は変わっていないので、
)(Cのsrand関数を提供することは、そのプロトタイプvoid srand関数を持っていた(INT A)関数は初期値のランド()関数を初期化することです
しかし、種子のために、我々は手動で、その後、たびに乱数を生成することはできません一度に入力してください
だから我々は、シードとしてコンピュータを時間を計るために持って、その後、種子が変わっ所有します(時間()関数の説明は下記を参照します)
#include <ビット/ STDC ++ H.> 使用して 名前空間STD; int型のmain() { srand関数(時間(NULL)); // 時間(NULL)はシステム時間である COUT << RAND()<< ENDL; 戻り 0 ; }
それはそれの一定の範囲内で乱数を生成する方法、達成するために、「%」および「+」を使用して考えるのは簡単です
0 <=ランド()%以来(NM + 1)<= NM
そうM <=ランド()、N%(N-M + 1)+、M <=
#include <ビット/ STDC ++ H.> 使用して 名前空間STD; int型のmain() { int型N-、M; CIN >> M >> N - ; srand関数(時間(NULL)); COUT << RAND()%(N - M + 1)+ M << ENDL; //は[N-、M]の間のランダムな整数生成 戻り 0 ; }
TIME.Hライブラリー関連
TIME.Hヘッダ・ファイルは、4つの変数の種類と、2つのマクロ日時の各種操作機能を定義します。
4つの変数
size_tの | それはのsizeofキーワードの結果であり、符号なし整数型であります |
clock_t | これは、プロセッサ時間のためのメモリの一種で、unsigned long型 |
time_tの | これは、暦時間を格納するのに適したタイプであります |
構造体tm | これは、建設の時刻と日付を保存する場所です |
次のようにtm構造体が定義されています。
マクロ二つ
ヌル | このマクロは、ヌルポインタ値に一定であります |
CLOCKS_PER_SEC | なお、第2のCPUが実行中のクロックサイクルの数を表します 結果クロックは()関数は、秒単位で金額を変換するために使用されます しかし、この量の特定の値は、一般的に、1000年のオペレーティング・システムに関連しています |
ライブラリ関数の一部
difftime()は: のように2秒を計算するために 、ターゲットのtime_tカレンダー時間(時間_終了- time_beg)との差と、 time_end
に代表前 time_beg
の時点、結果は陰性です。関数のプロトタイプ:ダブルdifftime(time_tのTIME2、time_tの時間1)
mktime(): 関数のプロトタイプ:time_t型はmktime(構造体tmの*のtimeptr )、 構造は、ローカルタイムゾーン値のtime_tに基づいてtimeptrを変換する指摘しました
時間は、() 内にエンコードされた返し のtime_tオブジェクトの現在のカレンダー時間、及びストレージ arg
点 以外のtime_tオブジェクト( arg
ヌルポインタのためには、現在の暦時間を得るとき午前0時00分00秒から1970-01-01にタイマー= NULL(今秒数)、暦時間を設定するタイマ=値、時間は、unsigned long型のtime_t関数プロトタイプ:.のtime_t時間(のtime_t *タイマです )
#include <ビット/ STDC ++ H> 使用して 名前空間STDを、 INT メイン() { のtime_t秒。 秒 = 時間(NULL); printf(" 1970-01-01 =の%ld \ nの以来の時間"、秒/ 3600 ); リターン 0 ; }
クロック(): (通常はプログラムの開始時に)時計機能を実行することから戻り、使用されるプロセッサのクロック時間、典型的には、プログラムまたは関数プロトタイプの実行時間の特定の期間を計算するために使用される:clock_tクロック(ボイド)
#include <ビット/ STDC ++ H.> 使用して 名前空間STD; int型のmain() { clock_t START_TIMEの、finish_timeに、 START_TIME = クロック(); // テストプログラムは、この時間を実行することができる実行 finish_timeに = クロック(); ダブル TOTAL_TIME = (ダブル)(finish_timeに- START_TIME)/ CLOCKS_PER_SEC; // あなたが削除CLOCKS_PER_SECに与えたい場合はミリ秒に時間を秒単位で変換 のprintf(「タイムランニングのプログラムです:F%\ N- 」、TOTAL_TIME); を返す 0を; }
いるasctime()は:時間変数は文字列表現アウト関数プロトタイプで表されるtm構造体のように定義される:* CHARいるasctime(構造体のTM * PTR)
#include <ビット/ STDC ++ H> 使用して 名前空間STDを、 INT メイン() { 構造体のTM T。 t.tm_sec = 10 。 t.tm_min = 50 。 t.tm_hour = 16 。 t.tm_mday = 6 。 t.tm_mon = 7 。 t.tm_year = 119 。 t.tm_wday = 2 。 printf(" %sにする\ n "、いるasctime(&T))。// 星期二2019年8月6日16時50分10秒 復帰(0 )。 }
LOCALTIME() :関数のプロトタイプ構造体 TM * LOCALTIME ( CONST のtime_t * 時間 )、変換(エポックの開始から所定の時間には、 time
対象とする 構造体tmカレンダ時刻とローカル時刻表現を形成するための値のtime_t)を
#include <ビット/ STDC ++ H> 使用して 名前空間STDを、 INT メイン() { time_tのタイマー。 構造体 TM * 今、 時間(&タイマー)。 // 获取当前时间 今= localtimeの(&タイマー)。// 填充のstruct tmの结构 のprintf(" 現在のローカル時刻と日付:%sの" 、今いるasctime()); リターン(0 )。 }
CTIME(): 通話用として、テキスト表示に、その後の時代の開始からカレンダー時間のコストに指定された時間を変換し、 関数は、asctime (localtimeの(時間))、関数のプロトタイプます。char * ctimeの(のconst time_t型*タイマー)
#include <ビット/ STDC ++ H> 使用して 名前空間STDを、 INT メイン() { のtime_t CURTIME。 時間(&CURTIME)。 printf(" 現在の時刻=%のS "、CTIME(&CURTIME))。 リターン(0 )。 }