Кірусіз бағдарлама артық емес пе?

Келесілерді қабылдамайтын пайдалы бағдарламалар бар ма? Пайдаланушының клавиатуры енгізу; сағаттан үзіліс; басқа сервердегі деректер және т.б.

Алдын ала анықталған деректерді есептейтін/басып шығарған бағдарлама файлға айналдырылуы мүмкін бе?

6
Конфигурацияны қажет етпейтін өлі адамның қосқышы. Менің ойымша, бұл таймерді енгізу ретінде қабылдайды деп ойлаймын, дегенмен циклде отыратын таймерді жақындата аласыз. Шынында да, кіріс деректерін қаттырақ өткізетін кез-келген бағдарлама.
қосылды автор sgwill, көзі
Оның қарапайым түрінде, ролик. Олар, әдетте, пайдаланылатын пайдаланушы енгізулерімен айналысады, бірақ, сізде, әрине, жоқ болуы мүмкін немесе сізде пәрмен жолында кіріс болатын және оны алдын ала анықталған кіріспен қамтамасыз ететін пакеттік файлмен атаған болар еді. осылайша пакеттік файл нөлдік кіріс болатын бағдарламаға айналады.
қосылды автор Sander Rijken, көзі
Пи сандарын есептейтін бағдарлама туралы не деуге болады? Бағдарлама туралы қандай да бір математикалық есептерге жауап беру үшін арналған бағдарлама туралы («бағдарламалау немесе компиляция кезеңінде») бағдарламаға кірісу қиындық тудырады?
қосылды автор Ryan Cox, көзі
Мәселен, математикалық жақындатудың жалғыз мысалы?
қосылды автор cmrhema, көзі
«Пайдалы» деген сөзді қолданылатын бөлшектерде қолдану бұл дегенді білдіреді.
қосылды автор cmrhema, көзі
« ... пайдаланушының кірістері, негізгі енгізу немесе ағымдағы уақыт сияқты [немесе сервер] кірістері»
қосылды автор cmrhema, көзі
Бұл сұрақ дұрыс қойылмаған.
қосылды автор cmrhema, көзі
Жауап: yes (1) :-)
қосылды автор Schroeder, көзі
Сіз «артық» деп айтқан кезде, сіз «пайдасыз» дегенді білдіресіз бе?
қосылды автор whatsisname, көзі
Енгізілмеген бағдарламалар пайдалы жағымсыз әсерлерге ие болуы мүмкін. Енгізілмеген таза бағдарламасы, мүмкін, жазық файлға түрлендірілуі мүмкін.
қосылды автор closeparen, көзі
«Кіріс» деп серверден алынған деректер кіріс ретінде де қызмет етеді ме? Мен пайдаланушының өзара әрекеттесуін қажет етпейтін таза ақпарат қосымшасын ойлаймын, бірақ ол деректерді басқаруға мүмкіндік беретін серверден беріледі.
қосылды автор Suraj, көзі

7 жауаптар

Мұндай бағдарлама пайдалы болуы мүмкін мысалы, бағдарлама оның шығуынан әлдеқайда қысқа болғанда. Яғни, бұл бағдарлама негізінен оның шығуының қысылған нұсқасы.

Кейбір практикалық қолдану жағдайлары:

  • Өзін-өзі қалпына келтіретін zip файлдары
  • Бірнеше рет «y» шығаратын yes (1) секілді шын мәнінде шексіз шыққан бағдарламалар. (Түсініктемеде бұл туралы еске салу үшін рахмет)

The theoretical term for this concept (when the output is finite) is Kolmogorov complexity. From Wikipedia:

32 кіші әріп пен санның келесі екі жолын қарастырыңыз:

  ababababababababababababababab

4c1j5b2p0cv4w1x8rx2y39umgw5q85s7
 
     

Бірінші жолда ағылшын тіліндегі қысқаша сипаттамасы бар, атап айтқанда «ab   16 рет «, 11 таңбадан тұратын, екіншісі - жоқ   айқын емес қарапайым сипаттама (бірдей таңбалар жиынтығын пайдалану)   32 таңбадан тұратын жолды өзі жазады.

     

Астам формальды, жолдың күрделілігі - ұзындығы   кейбір кеңейтілген әмбебап жолдың қысқа сипаттамасы   сипаттама тілі [...].

(Ескерту: Бұл әмбебап әмбебап сипаттама тілі әдетте кейбір Turing-толық бағдарламалау тілі болып табылады.)

9
қосылды

Көптеген жүйелік утилиталар. Өшіру, қайта жүктеу, қуат командалары.

Мен қазір ойланбаймын деп ойлаймын, мен сенімдімін.

4
қосылды

Ия, бірлік сынағы (кем дегенде жазылғандар).

Өңдеу

To be less glib: There are a lot of different unit test setups but they effectively boil down to the following, the code base under test is treated as a library and your unit tests are essentially one big program that when run prints out something like

Test foo passed
Test bar passed
Test baz failed
     ...Details...
Test quux passed

Егер сіздің сынақтарыңыз детерминирлендірілсе (әдетте, олар нашар теріс сынақ ретінде дұрыс емес болса), бұл жай ғана тұрақты жол болады.

Енді нақты әлемге енгеннен кейін, шекара шынымен анық емес, бірақ кіріспес бағдарлама - бұл бастапқы кодтың кейбір басқа жиынтығы туралы жақсы әдіс деп ойлаймын.

3
қосылды
Мен шатасып кеттім; Сіз енгізген сынақ кодын сынап көресіз бе?
қосылды автор cmrhema, көзі
Тексеру үшін бірлік тесттері кодты енгізу ретінде қарастырады деп ойладым ба?
қосылды автор cmrhema, көзі
@Tobi жақсы, жоқ ... Бірлік сынақтары кіріс немесе экологиялық ресурс ретінде іске асырылмайды, олар қосады компиляция кезінде іске асыру . Әдемі, интерактивті нәтижелерді алу үшін сынақ жиынтығы, әдетте, қоршаған ортаға (IDE немесе сынаушы сияқты) әсер етеді. Бірақ, бұл міндетті емес, шынымен. Ол өздігінен жүзеге асырылатын бинарлық болып табылады және нәтижелерді стандартты түрде шығарып тастайды. Ал шын мәнінде, мен осы табиғаттың кейбір сынаушыларын өзім ковбоям ...
қосылды автор svidgen, көзі
@Tobi, редакцияның сөзін келтіреді деп үміттенемін.
қосылды автор walpen, көзі

Бастапқы сандар тізбегін есептейтін бағдарлама.

1
қосылды

Қажетсіздігіңізді білдіретін нәрсеге байланысты. Міне бірнеше минут ішінде ойлайтын бірнеше адам бар:

  • Музыка немесе өнімді жасайтын бағдарлама

  • Роботқа би билейтін немесе билейтін бағдарлама

  • Виртуалды қоғамды модельдейтін және әртүрлі шарттарда оның өмір сүру ұзақтығын беретін бағдарлама

  • Радио маяк

Осы заттардың артықшылығы бар ма?

1
қосылды
№1: «музыка мен өнерді жасайды» деген не? Кездейсоқ = Енгізу арқылы # 2: Бұл роботты қозғалысты бақылайтын аудармаға кіреді. # 3: Енгізілген қоғам немесе кездейсоқ қалыптасқан? Соңғысы # 4 егілді: Сіз «радиожурык» дегеніміз не?
қосылды автор cmrhema, көзі
Осының бәрі кездейсоқ тұқымнан шықса да, кіруі болады.
қосылды автор RubberDuck, көзі
Дұрыс емес; тізімдегі элементтердің ешқайсысы ішіндегі талап етпейді, жүйенің ішінде жүйеден сырттан өтуге болатын нәрсе. Мен кездейсоқтықтың кез-келгеніне қажеттілік болатыны туралы идеяның қай жерде екенін білмеймін.
қосылды автор John Wu, көзі
# 1 Маған сөзбе-сөз музыкалық композицияны жазады немесе суретті түсіреді. Бұл өте жақсы музыка немесе өте қызықты сурет болуы керек емес. Кездейсоқтық пен түпнұсқалықты талап етудің қажеті жоқ. # 2. Жоқ, бұл робот қозғалысын басқаратын аудармашыға out болар еді. # 3. Бірде-бір; бастапқы өзіндік жағдайдан бастап, содан кейін дамитын өзін өзі анықтайтын қоғам. # 4. Электромагниттік спектрде үнемі таратылатын, біздің бағдарламамыздың шығуымен модуляцияланған, ықтимал алдын-ала белгіленген үлгіге сәйкес.
қосылды автор John Wu, көзі

Мұндай бағдарламалар кейде пайда болады және кейбір есептерді орындау арқылы белгілі бір сұраққа жауап беру үшін пайдалы. Бірақ бағдарлама дұрыс жұмыс істеп, нәтиже жасағаннан кейін, оны іске қосудың қажеті жоқ.

Мысал ретінде, Euler бұрыштарын барлық ықтимал Euler бұрыштық жүйелеріне ортогоналды матрицаға түрлендіретін матрицалар жиынтығын жасау үшін осындай бағдарламаны жаздым. Кіріс негізінен бағдарламада (перестандарттар жиынтығы) жасалды. Бағдарлама әрбір Euler бұрыштық жүйесінде 3 немесе 2 матрицаны символдық түрде көбейтіп, алынған матрицалармен TeX файлын жасады. Бағдарламаны жазу арқылы математиканы қолмен жасаудан гөрі аз жұмыс және аз қате болды. Бірақ қоршаған ортадан ешқандай шығыс жоқ еді. Сіз пәрменді ғана орындадыңыз және ол файлды жазды. Бір жолы мен дұрыс жұмыс істегеніне қанағаттанған болатынмын, себебі мен оны қайтадан іске асыра алмадым.

1
қосылды

Пайдаланушыдан немесе қоршаған ортаға ешқандай кіріс қабылдамайтын бағдарлама өте болжамды нәтиже береді. Егер нәтиже тек деректер болса, оны бағдарламаны қайтадан іске қоспай, оны файлға сақтауға болады. Бұл ең жоғары деңгейге үнемі таралуы еді.

Дегенмен, болжамдылық бірдей емес. Ешқандай кірісіз бағдарлама əрбір есепте əртүрлі нəтижелер шығара алар еді. Типтік мысал - кездейсоқ сандарды қолданып, симуляциялық бағдарлама. Бұл оқиға бәрібір шекара болып табылады, өйткені кездейсоқ сандар генераторы (немесе оның тұқымы) қоршаған ортаға кірудің ерекше түрі болып табылады деп айтуға болады.

Алайда, бағдарламада жанама әсерлер болуы мүмкін. Мысалы, кейбір шамдар (немесе бағдаршамдар) қосылып, өшірілуі мүмкін. Немесе терезеден кері санауды көрсетіңіз. Мұндай «жанама әсерлер» файлдағы алдын ала жазылған нәтиже арқылы ауыстырылмауы мүмкін. Сонымен, жоқ: ешқандай енгізілімсіз бағдарлама міндетті түрде «артық» емес!

0
қосылды
Yikes, мен мұнда бәрінің негізгі жүйелер теориясы сәтсіз деп ойлаймын. Сіз болжау мүмкін емес детерминистикалық (кездейсоқ емес) нәтиже ала аласыз. C.f. хаос теория .
қосылды автор John Wu, көзі
Міне оқулық мысал. Сыртқы жүйелер қажет емес. var x = 0.002; (int t = 0, t Сіз берілген t үшін болжауды болжай аласыз ба.
қосылды автор John Wu, көзі
Сондықтан сіз бірдей әнді екі рет тыңдамаған едіңіз бе?
қосылды автор John Wu, көзі
@JohnWu «бастапқы шарттарда жоғары дәрежеде» деп аталады, қоршаған ортаға қандай да бір түрдегі кірістерді алуды білдіреді (мысалы, жаңартылмаған айнымалылардың жағдайы). Егер бағдарлама үлкен динамикалық жүйенің бөлігі болса, хаотикалық нәтижелерді жасау үшін басқа бағдарламалармен байланысуға тура келеді: IPC-ақ кіріс формасы.
қосылды автор Christophe, көзі
@JohnWu өкінішті болса, бұл менің жауабымда анық емес: Менің ойымша, сол компьютерде есептеудің бұл түрі әр орындау кезінде бірдей нәтиже береді. Сондықтан мен оны іске қосып, нәтижелерді жазамын және кейіннен алынған нәтижелерді қолдана аламын (бұл мәселедегі біркелкі «артық» түсіндірдім). Әрине, егер нәтиже нәтижеге қол жеткізе ме, жоқ па деген қорытындыға қарап, пайдаланушыға шыдамсыздық пен ынтасын жасау ниеті болса, оны ойнату мүмкін болмайды, және мен бұл «жанама эффект» дегенді білдіреді. Егер цикл ешқашан аяқталмаса, біз жауаптың жанама әсерінде қаламыз
қосылды автор Christophe, көзі
@JohnWu Иә, мен :-) Мен эмоцияларға жағымсыз әсерін жақсы көремін. Жеке-дара, мен ешқашан деректерді үздік жабдықтармен дәлірек қайта есептей алатын боламын. Мен тек теориялық сұраққа жауап беремін. Және 30 жыл бұрын менің алғашқы симуляциялық бағдарламаларыммен уайымға салынған кездейсоқ кездейсоқтықтың тек қана жалған сөз болғанын және бағдарламаларды таң қалдыратын нәрселерді жасау үшін кейбір сыртқы шығындарды қажет ететінін байқаған кездегі көңіл-күйім туралы айтып берді. Және адал, сіз өзіңіздің ортаңыздан кіріс, оқиғаны немесе кері байланыс ала алмайтын көптеген қызықты бағдарламаларды пайдаланасыз ба ;-)
қосылды автор Christophe, көзі