新建乙個文件 check.sh 作為對拍指令碼.
#!/bin/bashview codewhile(true)do
#死迴圈
./data > 1.in #執行資料生成器,將資料輸出到1.in
./std < 1.in >out1 #std是標準(暴力)程式
./now < 1.in >out2 #now是現在要被測的程式
if diff -w out1 out2; then #比較,-w 是忽略行末空格
echo ac #如果一樣就輸出ac
else
echo wa
cat out1 out2 #不然就輸出wa,並顯示不相同的地方
break
fi #結束if
sleep
1#如果使用srand(),隨機數是秒級別的,用sleep 1讓它延遲一秒,不至於相同的資料在一秒內跑好多遍
done #結束迴圈
在命令列 data.sh 所在的目錄輸入 ./check.sh 即可執行.
如果顯示許可權不夠,則輸入 : chmod 777 ./check.sh 即可.其中777代表對所有使用者開放許可權什麼的.
#include #include秒級的隨機數#include
using
namespace
std;
intmain()
return0;
}//如果使用std=c++11編譯的話可以不用stdlib和time標頭檔案,改為random即可
#include #includelinux下真隨機數(推薦)using
namespace
std;
intmain()
//必須使用std=c++11編譯
示例是生成兩個隨機數.
隨機資料生成與對拍
在漫長的 oi 生涯中,你肯定遇到過這些情況 這時候,我們就可以試試隨機資料生成與對拍 顧名思義,就是針對我們的需求生成隨機的資料。比如生成隨機的整數序列,生成隨機的樹,生成隨機的圖。對拍說白了就是對答案,舉個栗子 在文化課中,對於同一道填空題,我們在寫出自己的答案後,可能會找其他同學對一下答案,看...
linux產生隨機數與隨機字元
在面試的時候我們會遇到寫乙個批量建立使用者,並且隨機生成不重複密碼的指令碼,建立使用者就用迴圈就好了,但是建立隨機數來做密碼的話,就有很多方法了,比如 我們建立隨機字元 隨機數 可以用mktemp radom mktemp建立的乙個暫存檔案 radom是建立乙個隨機數 利用mktmp 建立乙個檔案,...
linux下的真隨機數發生器 產生真隨機數
在翻閱linux核心方面的書時發現了乙個獲取真隨機數的方法。linux核心將機器的物理硬體產生的雜訊等 例如發生的鍵盤敲擊,中斷次數,頻率,溫度等等 放入系統的熵池 dev random 和 dev urandom 中放的就是熵池中的部分隨機資料,dev random 裡只放入熵池中達到一定熵值的情...