X



プログラミングのお題スレ Part15
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2019/07/28(日) 19:39:57.54ID:832c/ukY
プログラミングのお題スレです。

【出題と回答例】
1 名前:デフォルトの名無しさん
  お題:お題本文

2 名前:デフォルトの名無しさん
  >>1 使用言語
  回答本文
  結果がある場合はそれも

【ソースコードが長くなったら】 (オンラインでコードを実行できる)
https://ideone.com/
http://codepad.org/
http://compileonline.com/
http://rextester.com/runcode
https://runnable.com/
https://code.hackerearth.com/
http://melpon.org/wandbox
https://paiza.io/

宿題は宿題スレがあるのでそちらへ。

※前スレ
プログラミングのお題スレ Part14
http://mevius.5ch.net/test/read.cgi/tech/1558168409/
0693デフォルトの名無しさん
垢版 |
2019/10/05(土) 22:27:44.93ID:NXndjuW4
>>691
出題者ではないが、まず、完成図面を作って、そこから問題を作ったほうが早そうだ。
ヘックスの扱い方わからねーんだ俺。
昔聞いたことあるけど、そのうち・・・と思ってたら曖昧になってしまった。
0694デフォルトの名無しさん
垢版 |
2019/10/05(土) 23:11:05.60ID:6iFRuM3K
>>667 Perl5

$in = '<div><p><a></a></p></div><span><p></p></span>';
use XML::Simple;
$xml = new XML::Simple->XMLin('<document>'.$in.'</document>');
use Data::Dumper;
$Data::Dumper::Terse = 1;
print Dumper $xml;


実行結果
~ $ perl 15_667_Simple.pl
{
 'div' => {
  'p' => {
   'a' => {}
  }
 },
 'span' => {
  'p' => {}
 }
}
0696デフォルトの名無しさん
垢版 |
2019/10/06(日) 05:37:10.28ID:oevqPO9x
お題: L形図形を表示する
[入力]
1
[出力]
a
bc

[入力]
2
[出力]
ba
ca
abcc
bcab

[入力]
3
[出力]
bacb
cbaa
acba
bcca
bcabcccb
cabcabca
abccaabc
bcabbcab
0697デフォルトの名無しさん
垢版 |
2019/10/06(日) 05:55:18.89ID:vrVeYjyl
>>696
最後のやつが4ではなく3?
それと文字はabc使っているが、どういう規則で並べるのか?
0699675
垢版 |
2019/10/06(日) 09:02:51.40ID:O+kT1S2P
最後は4だろ
0700デフォルトの名無しさん
垢版 |
2019/10/06(日) 09:24:22.51ID:+7MXB6fE
>>697
おそらく1のパターンのL字を4つで向きを変えてくっつけて大きなL字にしたものが2のパターン。2を4つ使って同じことをやって3を作ってるということだと思う。愚直に再帰的にやれば簡単そう。
0703デフォルトの名無しさん
垢版 |
2019/10/06(日) 17:34:25.93ID:kRqXlweR
お題: プログラム実行後にプログラム自身を削除するプログラムを作れ
実行内容は以下のメッセージを出力する
「このプログラムが起動するのは一度きりである。実行ののち、消去される。」
0705675
垢版 |
2019/10/06(日) 18:05:59.73ID:m+CayYCA
>>703 そんな問題は却下。 
どんな問題でもファイルを削除する様な問題は出してはいけない。
ど素人もいるんだからそんな問題は出すべきではない。
0707デフォルトの名無しさん
垢版 |
2019/10/06(日) 20:12:57.33ID:XBuBF2Rc
#!/bin/sh
echo このプログラムが起動するのは一度きりである。実行ののち、消去される。
\rm -f $0
0709デフォルトの名無しさん
垢版 |
2019/10/06(日) 20:19:37.81ID:bPt7YQEe
>>707みて、できなくはないが、やりたくない気分になった。
http://www.t-net.ne.jp/~cyfis/c/stdlib/system.html
上記を使えば、PGからコマンドラインに干渉できる。が!ねぇ・・・。
場所もargc[0]に書いてあるんだけどねぇ・・・。

WA.
0711デフォルトの名無しさん
垢版 |
2019/10/07(月) 13:22:48.77ID:lSqRbxbA
>>703
Linux等のUNIX系OS

at now +1 min

などとやって at job が一分後に動くようにして次の1行を入力してから Ctrl+D で終了させる。

echo 'このプログラムが起動するのは一度きりである。実行ののち、消去される。'

その後1分待つと上記文言の出力後 at job は削除される。

ただし通常の出力先である標準出力はないことになっているのでatによって拾われてメールでエラーメッセージと共に送られてくる。
それを見たい場合はmailコマンドで送られてきたメールの内容を見る等する。
0712蟻人間 ◆T6xkBnTXz7B0
垢版 |
2019/10/07(月) 18:38:53.78ID:tyyduGK2
>>703 C++/Win32

#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char **argv)
{
printf("このプログラムが起動するのは一度きりである。実行ののち、消去される。\n");
FILE *fp = fopen("delete-me.bat", "w");
fprintf(fp, "@echo off\n");
fprintf(fp, ":retry\n");
fprintf(fp, "del \"%s\"\n", argv[0]);
fprintf(fp, "if exist \"%s\" goto retry\n", argv[0]);
fprintf(fp, "del delete-me.bat\n");
fclose(fp);
ShellExecuteA(NULL, NULL, "cmd", "/c delete-me.bat", NULL, SW_HIDE);
return 0;
}
0713デフォルトの名無しさん
垢版 |
2019/10/07(月) 22:21:05.16ID:aU+ghkHH
>>703 Perl5

print "このプログラムが起動するのは一度きりである。実行ののち、消去される。\n";
unlink $0;


実行結果
~ $ perl 15_703.pl
このプログラムが起動するのは一度きりである。実行ののち、消去される。
~ $ ls -o 15_703.pl
/usr/bin/ls: cannot access 15_703.pl: No such file or directory


嫌なプログラミンッグだな、一歩書き間違がや大参事。
こういうお題はご遠慮願いたいものだ…
0714デフォルトの名無しさん
垢版 |
2019/10/07(月) 22:32:50.62ID:aU+ghkHH
すまぬ >>713 は題意とは違うな。
プログラムの実行が終了してから削除されるわけか…

>>703 bash

(sleep 4; rm -f $0)&
echo このプログラムが起動するのは一度きりである。実行ののち、消去される。

実行結果
$ bash 15_703.sh
… 数秒後
$ ls -o 15_703.sh
ls: 15_703.sh にアクセスできません: No such file or directory
0715デフォルトの名無しさん
垢版 |
2019/10/07(月) 22:35:14.10ID:aU+ghkHH
>>714 実行結果貼りそこなったorz

$ bash 15_703.sh
このプログラムが起動するのは一度きりである。実行ののち、消去される。
$ ls -o 15_703.sh
-rw-r--r-- 1 ******** 98 10月 7 22:29 15_703.sh
… 数秒後
$ ls -o 15_703.sh
ls: 15_703.sh にアクセスできません: No such file or directory
0716デフォルトの名無しさん
垢版 |
2019/10/07(月) 23:18:10.62ID:Hq5Oz5C1
MSX BASIC
10 print"オハヨウフェルペスクン,コンカイノキミノニンムダガイカリャクナオコノテープハジドウテキニショウメツスル"
20 new
0718蟻人間 ◆T6xkBnTXz7B0
垢版 |
2019/10/07(月) 23:54:31.61ID:9cpaLYwd
実行時にexeにロックがかかるから、実行終了を待つsystem関数では消せないんだ、これが。
0719蟻人間 ◆T6xkBnTXz7B0
垢版 |
2019/10/08(火) 00:32:11.48ID:LPLIE15X
拡張子.batはコマンドプロンプトのバッチファイルを表す。
0721デフォルトの名無しさん
垢版 |
2019/10/08(火) 01:10:33.04ID:LQA6uDl1
>>720
C++&Windows.
おかしなキーコンビネーションで投稿してしまったが、それは置いといて。
結構な沼だったわ。
0726デフォルトの名無しさん
垢版 |
2019/10/08(火) 03:07:50.37ID:LQA6uDl1
タスクスケジューラには一個のタスクしか持たせることができません。
タスクスケジューラの健康のために削除タスクと削除タスクをkillするタスクを入れたという欲が出ました。
さて、どうすればよかったのでしょうか・・・。
0727デフォルトの名無しさん
垢版 |
2019/10/08(火) 03:25:53.77ID:LQA6uDl1
https://ideone.com/8DBn1u
チョットシンプルになった。
けど、ただスケジュールしてバッチファイル作るだけになっちゃった・・・。Orz

ううううううぼぉぉぉおあぁぁぁあああ。。。
0729デフォルトの名無しさん
垢版 |
2019/10/08(火) 22:43:05.75ID:8UaWwWzr
「インターネットには戦力外通告とかが無いから頭の悪い人がいつまでも打席に立って三振し続ける」
0730デフォルトの名無しさん
垢版 |
2019/10/09(水) 01:57:50.31ID:vwSn6CxZ
お題: TCPデータグラムが流れてくるのでFINフラグが立っていたら「切断します」と出力せよ
0731デフォルトの名無しさん
垢版 |
2019/10/10(木) 00:51:51.46ID:P0sO6qGI
>>729
IT分野の実社会では、単価にそれほど差がないのをいいことに
パーフォマンダウンによる差額で利ざやを稼ごうという
商売が横行して、結果としてIT分野が廃れている

だから。こまけーこたー いいんだよ
0733デフォルトの名無しさん
垢版 |
2019/10/10(木) 19:12:56.39ID:AtKsFWU7
>>690 解けた人いない?
0735デフォルトの名無しさん
垢版 |
2019/10/10(木) 20:46:59.80ID:78OW/ryc
いやお題はパズルを解けじゃなくてパズルのソルバーの実装だからwww
0736蟻人間 ◆T6xkBnTXz7B0
垢版 |
2019/10/10(木) 21:25:17.60ID:VnnXeZwz
古典的な人工知能の探索アルゴリズムを研究すれば、この程度のソルバーは作れる。
0737デフォルトの名無しさん
垢版 |
2019/10/10(木) 21:48:13.15ID:PZRS9XbT
つまり研究しないと作れないってことか。
0740デフォルトの名無しさん
垢版 |
2019/10/11(金) 01:56:11.32ID:H4pwkZny
いや総当たりでも出来たなら貼ってくれや。
別に総当たりでも恥ずかしくもなんともないと思うが…
0742デフォルトの名無しさん
垢版 |
2019/10/11(金) 09:03:11.12ID:Cra8acMD
できた!
みせて。
見せたくない!

うーん…
0750デフォルトの名無しさん
垢版 |
2019/10/12(土) 11:04:47.64ID:ewC1g8Dg
>>744 Pharo/Squeak Smalltalk

| bag |
bag := Bag new.
(0 to: 9) asDigitsToPower: 4 do: [:digits | bag add: digits sum].
^ bag sortedElements

"=> {0->1 . 1->4 . 2->10 . 3->20 . 4->35 . 5->56 .
6->84 . 7->120 . 8->165 . 9->220 . 10->282 .
11->348 . 12->415 . 13->480 . 14->540 . 15->592 .
16->633 . 17->660 . 18->670 . 19->660 . 20->633 .
21->592 . 22->540 . 23->480 . 24->415 . 25->348 .
26->282 . 27->220 . 28->165 . 29->120 . 30->84 .
31->56 . 32->35 . 33->20 . 34->10 . 35->4 . 36->1} "
0753デフォルトの名無しさん
垢版 |
2019/10/12(土) 11:52:28.41ID:msiQ/n9S
>>750
@Mathematica

Range[0, 9999] //
 Map[IntegerDigits, #] & //
 Map[Total, #] & //
 Tally

{{0, 1}, {1, 4}, {2, 10}, {3, 20}, {4, 35}, {5, 56}, {6, 84},
 {7, 120}, {8, 165}, {9, 220}, {10, 282}, {11, 348}, {12, 415},
 {13, 480}, {14, 540}, {15, 592}, {16, 633}, {17, 660}, {18, 670},
 {19, 660}, {20, 633}, {21, 592}, {22, 540}, {23, 480}, {24, 415},
 {25, 348}, {26, 282}, {27, 220}, {28, 165}, {29, 120}, {30, 84},
 {31, 56}, {32, 35}, {33, 20}, {34, 10}, {35, 4}, {36, 1}}
0755デフォルトの名無しさん
垢版 |
2019/10/12(土) 13:25:43.66ID:VvSWBOR5
>>748 言われた通りの改定問題

X,Yが与えられる。
X以上Y以下の連続する整数で、数字和の頻度。
もっとも大きい頻度はいくつか。
制約 0 <= X < Y <= 5000億

1) 0 9999 --> 670
  合計18が、670ある。>>744の入力値
2) 1234567 9876543 --> 459034
3) 1 500000000000 --> 20406732610
4) 12345678909 498765432123 --> 20000965162

※Y-Xが MAX5000億なので愚直(力技)はきつい。
※頻度表は"桁数*9"程度あるので、最高値出力のみに変更
0757デフォルトの名無しさん
垢版 |
2019/10/12(土) 18:44:18.00ID:I5ZWyiFj
>>740
>>741じゃねーけど総当りもどきで解いてみた
https://ideone.com/nZqnpN
https://i.imgur.com/3esPPr0.jpg
さすがにフルに総当りするととても終わりそうにないのでちょっとズルして各マスに入る文字を正規表現に使われている"ABCDEFGHMNORXYZ"に限定した
(ソースの217行目)
Celeron 1005M 1.9GHzのしょぼいノートPCで1,386秒(23分)程度だった
0758デフォルトの名無しさん
垢版 |
2019/10/12(土) 19:36:00.00ID:vBnCHMzu
>>757
すんごい
実行時間もすんごい…
0759デフォルトの名無しさん
垢版 |
2019/10/12(土) 19:59:28.15ID:hTj/2FIT
>>754 Perl5、計算量を減らしたアルゴリズム

sub f {
 @s = @_;
 for $l (1..9) {
  $s[$_ + $l] += $_[$_] for 0..$#_;
 } @s }
@b = f f f f 1;
print "$_,$b[$_] " for 0..$#b;

実行結果
~ $ perl 15_774_digit_sum_1.pl
0,1 1,4 2,10 3,20 4,35 5,56 6,84 7,120 8,165 9,220 10,282 11,348 12,415 13,480 14,540 15,592 16,633 17,660 18,670 19,660 20,633 21,592 22,540 23,480 24,415 25,348 26,282 27,220 28,165 29,120 30,84 31,56 32,35 33,20 34,10 35,4 36,1

もっと減らしたアルゴリズムを考えたい気もするけど、
これで一回投稿
0761744
垢版 |
2019/10/12(土) 20:24:43.33ID:1DgZSjUc
白状すると単にrubyで書きたいだけのお題だったんだけど
(Array#repeated_permutationを使いたいだけ)
みんな色々面白いこと考えるもんだね
0762蟻人間 ◆T6xkBnTXz7B0
垢版 |
2019/10/13(日) 14:56:19.23ID:w8oKE2gz
お題: ストップウォッチを作れ。

最初にEnterキーを押すとスタート。
次にEnterキーを押すとストップ。
経過した時間を表示する。
0763675
垢版 |
2019/10/13(日) 15:28:31.50ID:XFDKT5kN
>>744 Python
https://ideone.com/v1nrdn
―――-

import pandas as pd

array = []
for i in range(0,10000):
array.append(sum(list(map(int,str(i)))))

srv =pd.Series(array).value_counts().sort_index()

print(srv)
0765デフォルトの名無しさん
垢版 |
2019/10/13(日) 21:07:01.46ID:w512EwKm
>>755 C
http://ideone.com/qdx79j
一応Y = LLONG_MAXまでできる、あってるか知らんが
ただのスパゲッティになってしもた
0767デフォルトの名無しさん
垢版 |
2019/10/14(月) 02:00:45.97ID:Ws6GlsT+
>>762
Kotlin
まずは仕様通りのもの。

fun main() {
 val br = System.`in`.bufferedReader()
 br.readLine()
 val t0 = System.nanoTime()
 br.readLine()
 val t1 = System.nanoTime()
 val t = t1 - t0
 println("%d.%09d".format(t / 1000000000L, t % 1000000000))
}

しかしこれでは途中経過が出てこなくてつまらない。ということでこれ。

fun main() {
 val br = System.`in`.bufferedReader()
 br.readLine()
 val t0 = System.nanoTime()
 while (true) {
  if (br.ready()) {
   val c = br.read()
   if (c == '\n'.toInt())
    break
  }
  val t1 = System.nanoTime()
  val t = t1 - t0
  print("%d.%09d\r".format(t / 1000000000L, t % 1000000000))
 }
 println()
}
0773◆QZaw55cn4c
垢版 |
2019/10/14(月) 15:57:50.03ID:eo8SsHS2
>>771-772
それは 2^511-1 は 2^7-1 でも割り切れることを主張しているのですか?
0775デフォルトの名無しさん
垢版 |
2019/10/14(月) 20:26:24.40ID:ead7I0ur
>>773
2^511-1 = 2進数で1が511個 = 2進数で1111111が73個並んだ形
2^511-1を2^7-1で割ったら2進数で0000001が73個並んだ形
ってことじゃろ
0777◆QZaw55cn4c
垢版 |
2019/10/14(月) 21:23:44.39ID:eo8SsHS2
>>774-775
2^{ab}-1 = (2^a-1)(1 + 2a + 2^2a + 2^3a + ... + 2^(b-1)a)
と因数分解できるんですね…
thx a lot.
0779675
垢版 |
2019/10/15(火) 01:03:22.38ID:LXkkA+L3
もう何処かのチャレンジ問題を議論するスレでも良いのでは?
0780デフォルトの名無しさん
垢版 |
2019/10/15(火) 01:28:25.21ID:4KtvCQDg
お題: お題スレの過去スレからお題をランダムに選択し出力するプログラムを作成せよ
0788デフォルトの名無しさん
垢版 |
2019/10/16(水) 16:11:48.25ID:EcYqpM5S
QZが自身をキチガイだと認識しているのならば、QZはキチガイという言葉の正しい意味を理解していない
0790◆QZaw55cn4c
垢版 |
2019/10/16(水) 20:10:11.38ID:JF94p0Fe
>>789
どういうところが「頭がおかしい」と思ったのですか?
0791デフォルトの名無しさん
垢版 |
2019/10/17(木) 01:44:31.12ID:QhHbr34y
>>790
周囲が迷惑している行為や的外れで頓珍漢な言動をした際にそれを指摘しても、分からないから具体的に言えという。普通の人からすれば明らかな場合であろうと。
そして具体的に説明しても、自分はそう感じないから理解しない、納得しないと言い、言動を改めない。

本人の中では論理的整合性がとれた言動なのかも知れないが、周囲からすれば会話ができない困った奴に見える。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況