[問題]是程式的問題= =跟uo無關(會的人麻煩幫我寫一下)

版主: mmgames326HoBoy

回覆文章
games326
頂級玩家
頂級玩家
文章: 1445
註冊時間: 週四 1月 03, 2002 8:00 am

文章 games326 » 週一 9月 30, 2002 5:40 pm

薛爆 寫:
games326 寫:看不懂 :o
不是學程式設計ㄉ~CC
順帶一提~~~ray你有十可不可以出現一下阿
呵呵 我最近才重灌電腦還沒灌uo
暫時不會出現 :smoke: :smoke: :smoke:
喔喔喔~~~快回來喔
等你喔~~~等你來繳會費喔
永遠ㄉ新人~~~Fan Rock
圖檔
兼~~恐怖ㄉ奸商~~~挖哈哈哈哈

薛爆
高級玩家
高級玩家
文章: 602
註冊時間: 週六 8月 04, 2001 8:00 am

文章 薛爆 » 週一 9月 30, 2002 5:40 pm

#include "stdlib.h"
#include <deque> //要宣告這個,deque才可以使用
using namespace std;

//類別設定
class NUM
{
public:
int num1,num2,num3;
} ;

void main()
{
//變數宣告
int size,i;
deque<NUM> AllNum;
NUM num;
bool SameFlag;

//程式開始...
size=AllNum.size();
while(size<=150){
num.num1=random(41)+1;
num.num2=random(41)+1;
//判斷num2有沒有等於num1
while(num.num2==num.num1){
num.num2=random(41)+1;
}
num.num3=random(41)+1;
//判斷num3有沒有等於num1或num2
while(num.num3==num.num1 || num.num3==num.num2){
num.num3=random(41)+1;
}
//以上可產生一組三個不同的號碼
//以下判斷有無跟前面的重複
size=AllNum.size();
if(size==0){ //第一組號碼..直接存進AllNum
AllNum.push_back(num);
}
else{ //第二組以上號碼
SameFlag=false;
for(i=0;i<size;i++){
if(num.num1==AllNum.num1 || num.num1==AllNum.num2 || num.num1==AllNum.num3 )
if(num.num2==AllNum.num1 || num.num2==AllNum.num2 || num.num2==AllNum.num3 )
if(num.num3==AllNum.num1 || num.num3==AllNum.num2 || num.num3==AllNum.num3 ){
SameFlag=true;
break;
}
}
if(SameFlag==false){
AllNum.push_back(num);
size=AllNum.size();
}
}
}
//跑到這裡AllNum裡面應該已經放了150組號碼
//而且沒有兩組是一樣的號碼
//以下檔案輸出
FILE *fp;
fp=fopen("c:\\號碼.txt","w");
for(i=0;i<size;i++){
fprintf(fp,"第%d組號碼: %d , %d , %d \n",i,AllNum.num1,AllNum[i].num2,AllNum[i].num3);
}
fclose(fp);
}


親愛的vo~ :oops: :oops: :oops:
你給我的程式碼我compiler後有些錯
我改成這樣後還是有個錯誤(也只是多加了main和一些;)
錯誤是這個:C:\Windows\Desktop\d.cpp(23) : error C2065: 'random' : undeclared identifier
麻煩你幫我再看看吧 :P 感謝感謝

薛爆
高級玩家
高級玩家
文章: 602
註冊時間: 週六 8月 04, 2001 8:00 am

文章 薛爆 » 週一 9月 30, 2002 5:15 pm

chanow 寫:挖勒..

薛暴你修哪一科需要交這個程式阿 :o
修我爸那科 :lol: :lol: :lol: :lol: :lol:
我爸要我交的作業 :twisted:

薛爆
高級玩家
高級玩家
文章: 602
註冊時間: 週六 8月 04, 2001 8:00 am

文章 薛爆 » 週一 9月 30, 2002 5:14 pm

games326 寫:看不懂 :o
不是學程式設計ㄉ~CC
順帶一提~~~ray你有十可不可以出現一下阿
呵呵 我最近才重灌電腦還沒灌uo
暫時不會出現 :smoke: :smoke: :smoke:

薛爆
高級玩家
高級玩家
文章: 602
註冊時間: 週六 8月 04, 2001 8:00 am

文章 薛爆 » 週一 9月 30, 2002 5:13 pm

vo 寫:希望你會用deque...@@a
//標頭檔
#include "stdlib.h"
#include <deque> //要宣告這個,deque才可以使用
using namespace std;

//類別設定
class NUM
{
public:
int num1,num2,num3;
}

//變數宣告
int size,i;
deque<NUM> AllNum;
NUM num;
BOOL SameFlag;

//程式開始...
size=AllNum.size();
while(size<=150){
num.num1=random(41)+1;
num.num2=random(41)+1;
//判斷num2有沒有等於num1
while(num.num2==num.num1){
num.num2=random(41)+1;
}
num.num3=random(41)+1;
//判斷num3有沒有等於num1或num2
while(num.num3==num.num1 || num.num3==num.num2){
num.num3=random(41)+1;
}
//以上可產生一組三個不同的號碼
//以下判斷有無跟前面的重複
size=AllNum.size();
if(size==0){ //第一組號碼..直接存進AllNum
AllNum.push_back(num)
}
else{ //第二組以上號碼
SameFlag=FALSE;
for(i=0;i<size;i++){
if(num.num1==AllNum.num1 || num.num1==AllNum.num2 || num.num1==AllNum.num3 )
if(num.num2==AllNum.num1 || num.num2==AllNum.num2 || num.num2==AllNum.num3 )
if(num.num3==AllNum.num1 || num.num3==AllNum.num2 || num.num3==AllNum.num3 ){
SameFlag=TRUE;
break;
}
}
if(SameFlag==FALSE){
AllNum.push_back(num);
size=AllNum.size();
}
}
}
//跑到這裡AllNum裡面應該已經放了150組號碼
//而且沒有兩組是一樣的號碼
//以下檔案輸出
FILE *fp;
fp=fopen("c:\\號碼.txt","w");
for(i=0;i<size;i++){
fprintf(fp,"第%d組號碼: %d , %d , %d \n",i,AllNum.num1,AllNum[i].num2,AllNum[i].num3);
}
fclose(fp);
//以上程式結束

ㄜ.....這是最直觀的寫法....
應該還可以改進一下...讓速度變快..
因為每得到一組新的..就要跟前面的號碼比較..
會耗時間......^^"
我沒有測試過....不過應該可以吧....
你可以試試...QQ

deque........沒聽過~_~
謝謝你喔 我去試試^^

wolfeagle
中級玩家
中級玩家
文章: 128
註冊時間: 週五 8月 23, 2002 8:35 pm

文章 wolfeagle » 週一 9月 30, 2002 2:48 pm

[F.R]Demon 寫::o
看懂了....原來....就是這樣啊!!(還是不懂)
沒關係的,因為我也是。
我是程式白癡,不管我哥教了我再多次,還是完全沒稿懂過......
新來的一匹愛趴趴走的狼。
請大家多多指教與包含喔~ ^o^

圖檔

[F.R]Demon
頂級玩家
頂級玩家
文章: 4107
註冊時間: 週四 7月 12, 2001 8:00 am

文章 [F.R]Demon » 週一 9月 30, 2002 2:29 pm

:o
看懂了....原來....就是這樣啊!!(還是不懂)
台灣極左派就是我..我就是台灣極左派
本公司服務項目為:
1.製造恐怖攻擊
2.煽動群眾暴動
預約專線ICQ:125591072
EMAIL:大陸對岸 . 製造恐怖攻擊 @ 煽動群眾暴動 . com . tw

mikimoto
初級玩家
初級玩家
文章: 31
註冊時間: 週五 9月 27, 2002 11:33 pm

文章 mikimoto » 週一 9月 30, 2002 1:11 pm

對不起,獻醜了
我直覺的聯想到,這是一個三度空間的幾何問題
不過也有可能把問題複雜化
但是應該可以堆斷出簡單的數學公式
三個1~42數列個分別代表 x, y, z 三軸的數值
那就表示我們將在 42x42x42 的立方體中取一個座標為整數的點
這個點又不能位在 x=y=z, x=y, y=z 此三條射線上
....
推斷出公式後,我們就可以找出基數帶入,馬上就可取值出來了 :smoke:

p.s. 我會不會在脫褲子放屁阿? 不過直覺上應該是有公式的
等我專案忙完,我來玩玩這一題吧

chanow
高級玩家
高級玩家
文章: 589
註冊時間: 週五 10月 26, 2001 8:00 am

文章 chanow » 週一 9月 30, 2002 1:10 pm

挖勒..

薛暴你修哪一科需要交這個程式阿 :o

vo
頂級玩家
頂級玩家
文章: 2863
註冊時間: 週二 7月 03, 2001 8:00 am

文章 vo » 週一 9月 30, 2002 12:19 pm

關於第3點感覺還滿有趣的...
如何應用x,y,z看問題??
^^"
Divine Vag(D.V.)--->神聖流氓
哈斯塔啦、V斯塔家族列表
Hastalavista-->(Baby,VO)-->(瞳、Oliver、King of Scorpian、KleMenT)-->(McDonald's)

mikimoto
初級玩家
初級玩家
文章: 31
註冊時間: 週五 9月 27, 2002 11:33 pm

文章 mikimoto » 週一 9月 30, 2002 11:49 am

剛剛看到這一篇 Post,沒想到已經有人回了
雖然本來想野人獻曝一下,不過大家也知道貓是很懶的
提供一些建議:

1. vo 的程式既然已經要用 STL,應該把 iterator 搬出來用可能速度會改善一點,貓是 STL命 :ghost:

2. 題目中並沒有提及亂數取值,直接用亂數取值反而增加困難度,我認為可以由以下方向思考,依照演算法用迴圈取出數值,全部放入 vector 後,用亂數來取得 vector 當中的 elem,這樣不僅可以達到亂數的平均分佈,甚至程式當中不需要 if 判斷式(選完一個,drop一個,保證不會重複)

3. 演算法的思考可以用三度空間座標來看問題(x,y,z),會變的很簡單喔

games326
頂級玩家
頂級玩家
文章: 1445
註冊時間: 週四 1月 03, 2002 8:00 am

文章 games326 » 週一 9月 30, 2002 8:42 am

看不懂 :o
不是學程式設計ㄉ~CC
順帶一提~~~ray你有十可不可以出現一下阿
永遠ㄉ新人~~~Fan Rock
圖檔
兼~~恐怖ㄉ奸商~~~挖哈哈哈哈

vo
頂級玩家
頂級玩家
文章: 2863
註冊時間: 週二 7月 03, 2001 8:00 am

文章 vo » 週一 9月 30, 2002 7:39 am

希望你會用deque...@@a
//標頭檔
#include "stdlib.h"
#include <deque> //要宣告這個,deque才可以使用
using namespace std;

//類別設定
class NUM
{
public:
int num1,num2,num3;
}

//變數宣告
int size,i;
deque<NUM> AllNum;
NUM num;
BOOL SameFlag;

//程式開始...
size=AllNum.size();
while(size<=150){
num.num1=random(41)+1;
num.num2=random(41)+1;
//判斷num2有沒有等於num1
while(num.num2==num.num1){
num.num2=random(41)+1;
}
num.num3=random(41)+1;
//判斷num3有沒有等於num1或num2
while(num.num3==num.num1 || num.num3==num.num2){
num.num3=random(41)+1;
}
//以上可產生一組三個不同的號碼
//以下判斷有無跟前面的重複
size=AllNum.size();
if(size==0){ //第一組號碼..直接存進AllNum
AllNum.push_back(num)
}
else{ //第二組以上號碼
SameFlag=FALSE;
for(i=0;i<size;i++){
if(num.num1==AllNum.num1 || num.num1==AllNum.num2 || num.num1==AllNum.num3 )
if(num.num2==AllNum.num1 || num.num2==AllNum.num2 || num.num2==AllNum.num3 )
if(num.num3==AllNum.num1 || num.num3==AllNum.num2 || num.num3==AllNum.num3 ){
SameFlag=TRUE;
break;
}
}
if(SameFlag==FALSE){
AllNum.push_back(num);
size=AllNum.size();
}
}
}
//跑到這裡AllNum裡面應該已經放了150組號碼
//而且沒有兩組是一樣的號碼
//以下檔案輸出
FILE *fp;
fp=fopen("c:\\號碼.txt","w");
for(i=0;i<size;i++){
fprintf(fp,"第%d組號碼: %d , %d , %d \n",i,AllNum.num1,AllNum[i].num2,AllNum[i].num3);
}
fclose(fp);
//以上程式結束

ㄜ.....這是最直觀的寫法....
應該還可以改進一下...讓速度變快..
因為每得到一組新的..就要跟前面的號碼比較..
會耗時間......^^"
我沒有測試過....不過應該可以吧....
你可以試試...QQ
最後由 vo 於 週一 9月 30, 2002 7:43 am 編輯,總共編輯了 2 次。
Divine Vag(D.V.)--->神聖流氓
哈斯塔啦、V斯塔家族列表
Hastalavista-->(Baby,VO)-->(瞳、Oliver、King of Scorpian、KleMenT)-->(McDonald's)

薛爆
高級玩家
高級玩家
文章: 602
註冊時間: 週六 8月 04, 2001 8:00 am

[問題]是程式的問題= =跟uo無關(會的人麻煩幫我寫一下)

文章 薛爆 » 週日 9月 29, 2002 5:01 pm

題目是:從1~42產生100組或150組數字(兩種都要能產生),每組三個數字 例如:(25,11,40)這樣算一組,而且100組或150組數字裡面不能有完全相同的(順序不同數字同也算相同) 產生後的東西希望能存入一新增的txt檔裡
拜託囉!!
很急@@ 請會的人好心幫我寫一下吧
如果是c或c++的麻煩把程式碼po出來
如果是別種語言的也請留一下言
我好跟你連絡
拜託拜託
千萬拜託~_~
最後由 薛爆 於 週日 9月 29, 2002 5:52 pm 編輯,總共編輯了 1 次。

回覆文章

回到「Net power公會」

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 3 位訪客