just_discuss 2017-2-25 02:01
我想問下呢
可唔可以寫個c++ program,佢會抄起自己cpp內容,然後copy入另一個cpp
例如: (呢段code就係waitTocopy.cpp自身 )
{
ifstream helper("waitTocopy.cpp");
ofstream f("被改的.cpp");
f<<helper.rdbuf();
f.close();
}
上邊呢個係唔work , 不過我個idea類似係咁.
煙民母親生賤種
*** 作者被禁止或刪除 內容自動屏蔽 ***
有諗辦法 2017-2-25 06:41
其實有時啲問題係唔明想做乜目的係冇得答 :smile_27:
darigold 2017-2-25 06:54
這個叫做 Recursion Theorem
[url]https://en.wikipedia.org/wiki/Kleene%27s_recursion_theorem[/url]
一個程式可以 output 自己的 description 。
Susan﹏汪汪 2017-2-25 08:42
https://en.wikipedia.org/wiki/Quine_%28computing%29
just_discuss 2017-2-25 16:50
[quote]原帖由 [i]煙民母親生賤種[/i] 於 2017-2-25 02:51 AM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=456973724&ptid=26470927][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]
點解要咁做?如果你係要完成幾次,用 for loop。如果要等完成某件工作後才執行,可以用 event。如果想將你段code的功能帶入其他function內,可以用function pointer [/quote]
sorry , 講漏左原因, 咁做係想試下做self -replicated program.
而家想做既效果就係 同一個folder入面, 當我click 左exe file, 咁佢就會改左同一個folder入面 一個.cpp file 既內容為自己既內容
(當exe 就係叫virus)
我係用input /output concept 去諗, 但係諗諗下, 同一個folder 入面, compile 出virus.exe 果個file 唔應該會係到, 所以open virus.cpp呢句根本唔會work.
不過我唔知應該用咩implementation
[[i] 本帖最後由 just_discuss 於 2017-2-25 04:53 PM 編輯 [/i]]
just_discuss 2017-2-25 16:52
[quote]原帖由 [i]darigold[/i] 於 2017-2-25 06:54 AM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=456975909&ptid=26470927][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]
這個叫做 Recursion Theorem
[url=https://en.wikipedia.org/wiki/Kleene%27s_recursion_theorem]https://en.wikipedia.org/wiki/Kleene%27s_recursion_theorem[/url]
一個程式可以 output 自己的 description 。 [/quote]
thanks, 呢個我未聽過,反而quins 就係research 過程入邊見過好多次, 但係好似太deep, 我果個問題應該簡單D?
just_discuss 2017-2-25 17:03
[quote]原帖由 [i]煙民母親生賤種[/i] 於 2017-2-25 02:51 AM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=456973724&ptid=26470927][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]
點解要咁做?如果你係要完成幾次,用 for loop。如果要等完成某件工作後才執行,可以用 event。如果想將你段code的功能帶入其他function內,可以用function pointer [/quote]
咁講, 我一按 abc.exe
佢就會將 同一個folder 下的 haha.cpp == abc.cpp , 但同一個folder下的只可以有 abc.exe 及haha.cpp
just_discuss 2017-2-25 22:23
#include <cstdio>#include <fstream>
using namespace std;
int main(){char pyc[]=
"#include <cstdio>#include <fstream>%cusing namespace std;int main(){char pyc[]=%c%s%c;printf(pyc,10,34,pyc,34);ofstream f("victim.cpp");f.close();}";
ofstream f("victim.cpp");
f<<printf(pyc,10,34,pyc,34);
f.close();
}
試左咁寫雖然唔明,但做到output自己, 但如果用ofstream 放入main 就出error
[[i] 本帖最後由 just_discuss 於 2017-2-25 11:16 PM 編輯 [/i]]
just_discuss 2017-2-25 23:49
[quote]原帖由 [i]有諗辦法[/i] 於 2017-2-25 06:41 AM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=456975811&ptid=26470927][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]
其實有時啲問題係唔明想做乜目的係冇得答 :smile_27: [/quote]
sorry未講清楚, 我諗個問題係寫一個[url=http://en.wikipedia.org/wiki/Quine_(computing)]Quine[/url] (output 自己source code, 之後寫入另一個 .cpp(同folder))
我search 有source code做[url=http://en.wikipedia.org/wiki/Quine_(computing)]Quine[/url] , 但係當加入 ofstream 就error
煙民母親生賤種
*** 作者被禁止或刪除 內容自動屏蔽 ***
darigold 2017-2-26 09:16
這個是 C# 版,它可以 WriteLine 自己的 source code︰[code]class Program
{
static void Main()
{
string tape = @" string a = @""class Program
{
static void Main()
{
string tape = @"""""" + tape.Replace(""\"""", ""\""\"""") + @"""""";
"";
System.Console.WriteLine(a + tape);
}
}";
string a = @"class Program
{
static void Main()
{
string tape = @""" + tape.Replace("\"", "\"\"") + @""";
";
System.Console.WriteLine(a + tape);
}
}[/code]https://github.com/cshung/MiscLab/blob/master/Recursion/Program.cs
有諗辦法 2017-2-26 09:57
[quote]原帖由 [i]just_discuss[/i] 於 2017-2-25 11:49 PM 發表 [url=http://www.discuss.com.hk/redirect.php?goto=findpost&pid=457015677&ptid=26470927][img]http://www.discuss.com.hk/images/common/back.gif[/img][/url]
sorry未講清楚, 我諗個問題係寫一個Quine (output 自己source code, 之後寫入另一個 .cpp(同folder))
我search 有source code做Quine , 但係當加入 ofstream 就error [/quote]
可能我好膚淺 ,我唔明嘅係 你要抄個 source code 做咩 ,有乜情況會 執行碼 會同 source code 一齊 ;又要做 copy 。我係唔明有乜用 :smile_27:
bluenemo 2017-2-26 21:29
:smile_o12::smile_o12::smile_o12:
Susan﹏汪汪 2017-2-26 21:55
其實樓主只係想做到Quine的效果
而唔係寫個program 來copy program 再run
darigold 2017-2-27 02:06
其實 Quine 本身冇咩用,主要係驗證 Recursion Theorem。
Recursion Theorem 可以用來證明某些關於 program 既問題,例如呢個!
你不可能有一個程序可以決定任何一個程序是否用了最少的 bytes。
證明在這裏,MIN TM is not Turing Recognizable。
[url]http://web.cecs.pdx.edu/~sheard/course/CS581/notes/RecursionTheorem.pdf[/url]
煙民母親生賤種
*** 作者被禁止或刪除 內容自動屏蔽 ***
darigold 2017-2-27 09:47
[quote]原帖由 [i]煙民母親生賤種[/i] 於 2017-2-27 03:43 AM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=457077755&ptid=26470927][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]
我 google 過, 真係睇左幾篇都唔知 quine 有乜用! :fst_008:
[/quote]
我咪話左你知冇用囉,仲問 ……
[quote]
其實 Quine 本身冇咩用,主要係驗證 Recursion Theorem。
[/quote]
darigold 2017-2-28 00:26
解釋 C# Quine 既創建過程。
[url=http://andrew-complexity.blogspot.com/2017/02/recursion-theorem-in-practice-building.html]http://andrew-complexity.blogspot.com/2017/02/recursion-theorem-in-practice-building.html[/url]
tom.care
*** 作者被禁止或刪除 內容自動屏蔽 ***
有諗辦法 2017-2-28 08:51
睇咗 wiki , 明明哋 … 不過有冇人實作過哩 ?
darigold 2017-3-2 07:39
[quote]原帖由 [i]有諗辦法[/i] 於 2017-2-28 08:51 AM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=457135613&ptid=26470927][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]
睇咗 wiki , 明明哋 … 不過有冇人實作過哩 ?
[/quote]
呢個係Quine既實作連解釋如何實作既過程!
[url=http://andrew-complexity.blogspot.com/2017/02/recursion-theorem-in-practice-building.html]http://andrew-complexity.blogspot.com/2017/02/recursion-theorem-in-practice-building.html[/url]
有諗辦法 2017-3-2 07:43
[quote]原帖由 [i]darigold[/i] 於 2017-3-2 07:39 AM 發表 [url=http://www.discuss.com.hk/redirect.php?goto=findpost&pid=457249359&ptid=26470927][img]http://www.discuss.com.hk/images/common/back.gif[/img][/url]
呢個係Quine既實作連解釋如何實作既過程!
http://andrew-complexity.blogspot.com/2017/02/recursion-theorem-in-practice-building.html [/quote]
噢 sorry , 我應該講 有冇實際應用嘅例子 ,自我產生程式用喺咩地方 …
darigold 2017-3-3 01:21
[quote]原帖由 [i]有諗辦法[/i] 於 2017-3-2 07:43 AM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=457249451&ptid=26470927][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]
噢 sorry , 我應該講 有冇實際應用嘅例子 ,自我產生程式用喺咩地方 … [/quote]
其實呢個問題我一樣回應左︰
[quote]
[b]其實 Quine 本身冇咩用,主要係驗證 Recursion Theorem。[/b]
[/quote]
Quine 真係冇用架。就好似有人同你講直角三角形係會遵守畢氏定理,你畫一個試試,果然係喎。
個三角形畫完後有咩用?冇用。
頁:
[1]