2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

プログラミングのお題スレ Part13

1 :デフォルトの名無しさん:2019/02/03(日) 11:21:53.20 ID:72eosYJ+.net
プログラミングのお題スレです。

【出題と回答例】
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/

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

※前スレ
https://mevius.2ch.net/test/read.cgi/tech/1538096947/

957 :デフォルトの名無しさん:2019/05/17(金) 17:24:51.97 ID:L8EHraRu.net
>>954
パッ見で分からん

958 :デフォルトの名無しさん:2019/05/17(金) 18:07:07.73 ID:nEasvejW.net
偶数なら1引く
奇数なら1足すとかでいいんじゃないの

959 :デフォルトの名無しさん:2019/05/17(金) 18:39:31.46 ID:9GdSR9hc.net
>>958 良いんじゃないのじゃなくて、他の人が理解できる言葉に翻訳してよ。
これじゃ小学校の国語で平均点以下だろ。

日本語が不自由ならプログラム例を示せば良い。変な言語はダメだけど、C系の素直な言語なら万国共通

960 :デフォルトの名無しさん:2019/05/17(金) 19:30:38.86 ID:Jb6joIEA.net
要はf: N -> N の∀n∈N f(n) ≠ n かつ全単射な写像を求めろってことでしょ

961 :デフォルトの名無しさん:2019/05/17(金) 19:35:23.29 ID:Jb6joIEA.net
あ、単射じゃなくてもいいか

962 :デフォルトの名無しさん:2019/05/17(金) 19:40:06.71 ID:9GdSR9hc.net
>>960 あのさ、それで人に通じると思ってるの?
そんな仕様書を書いて誰がコーディングするんだよ。

日本語に翻訳して明後日出直してこい。

言語能力にかけてるやつは、自分の頭の中が周りの人からスケスケに見えてると言う妄想を持ってる。
狭い世界で通用しても社会では通用しない。

963 :デフォルトの名無しさん:2019/05/17(金) 19:47:34.60 ID:9GdSR9hc.net
ここまで何人もの人がわからんと言ってるのは、その仕様を出した人間の素質が失格という事だろ。

それを何で庇うんだ? 庇う理由を説明してみろよ。 ここがバカばかりと思うならバカに解るように説明しろよな。

バカにわからせなければ、PLは務まらないよ。
と言うか、仕事は一般人としてるのに何をトチ狂ってるんだ? かなり精神を疑うな。

964 :デフォルトの名無しさん:2019/05/17(金) 19:50:16.70 ID:Jb6joIEA.net
教養のないやつに限ってブチ切れる

965 :デフォルトの名無しさん:2019/05/17(金) 20:11:05.80 ID:KIX3RA0i.net
>>952
桃白白改めミスターポポ改めピラフ改めピッコロさん、くだらない出題はやめてください

966 :デフォルトの名無しさん:2019/05/17(金) 20:11:56.63 ID:9a+COZnd.net
>>964 で、どんな問題なんだ? プログラミングできる仕様として出してくれよ。

967 : :2019/05/17(金) 20:21:17.94 ID:e+Q6zZPk.net
>>961
単射でないとなると、n に対して n % 10 を対応付けるとかもありになりますね…

>>962
全射、単射、全単射とかは普通に使う単語ですよ、知らないのなら、これらの術語を含む数学の本…代数ですかね?解析ですかね?よくわからないや、を一冊読んでみるのがいいですね

968 :デフォルトの名無しさん:2019/05/17(金) 20:46:06.10 ID:Jb6joIEA.net
>>966
出題者に言えよ

>>967
%じゃ全射にも単射にもならんぞ
上で誰かが言ってた遇奇を入れ替えたりだとか
f(n) = n - 1, f(0) = 0以外の任意の値
とかなんでもありだね。つまらんけど

969 :デフォルトの名無しさん:2019/05/17(金) 20:48:13.95 ID:99nnd/tf.net
顔射は普通に使う単語ですか?

970 : :2019/05/17(金) 20:51:49.11 ID:e+Q6zZPk.net
>>968
>%じゃ全射にも単射にもならんぞ
そうですね、じゃ、割り算の商の整数部分「/」とかはどうでしょう

971 :デフォルトの名無しさん:2019/05/17(金) 21:06:32.38 ID:ut9H1r3U.net
>>969
はい。

972 :デフォルトの名無しさん:2019/05/17(金) 21:09:38.99 ID:Jb6joIEA.net
>>970
そりゃなんでもありよ
その場合は0の時だけ別の値を定義すれば良し

973 :デフォルトの名無しさん:2019/05/17(金) 21:30:53.57 ID:0M7uQZeH.net
920だが、ランク付けだと解が236531と解釈される可能性が有ったので避けた
もっと簡単な書き方があるはそう思う、座圧+1とかでも伝わるだろうし……

974 :デフォルトの名無しさん:2019/05/17(金) 22:36:31.21 ID:gcMK/Ofn.net
数値のリストを入力し、値の小さい順に1から順位を付けて、
順位のリストを出力する。同じ値は同じ順位とする

975 :デフォルトの名無しさん:2019/05/17(金) 22:47:54.41 ID:TGYryIO4.net
ほんとそれ
ピラフ改めピッコロはさっさと自害しろ

976 :デフォルトの名無しさん:2019/05/17(金) 23:20:58.53 ID:L8EHraRu.net
>>954
やっぱりどういう入出力の具体例になるのか分からない
どういうことなんだよ

977 :デフォルトの名無しさん:2019/05/17(金) 23:47:24.37 ID:xYITnAAv.net
>>976
あくまで俺の推測だが
一例として、自分自身の数が3のとき自然数から3を除去して
(1) 1, 2, 3, 4, 5, 6, ...

(2) 1, 2, NULL, 4, 5, 6, ...
NULLになった部分をなくすために4以降を左へシフトする
(3) 1, 2, 4, 5, 6, 7, ...
こんな感じで(1)の入力を(3)のような出力にする関数じゃないか?

ただお題の条件としてはもっとゆるくて、入力はオーバーフローしない範囲の自然数、出力は「自分自身の数」を含まない自然数になれば何でもよくて、
定数関数でもハッシュ関数でもいいはず。
ただし、ある入力に対して必ず決まった値にならなければならず、同じ入力で呼び出すたびに出力が違うのはダメ。

978 :デフォルトの名無しさん:2019/05/18(土) 00:15:42.42 ID:w6U4ewGf.net
>>977 何をアホな事を言ってるんだ? そんなの小学生に数を数えなさいと言ってるのと等しいぞ。

それのどこがプログラミングのお題なんだ?
バカじゃないのか?

979 :デフォルトの名無しさん:2019/05/18(土) 01:03:14.81 ID:bbC9YGRR.net
>>947
乙、見事。

980 :デフォルトの名無しさん:2019/05/18(土) 01:57:48.06 ID:jjK+y75q.net
>>925
C#
https://paiza.io/projects/OXVNCyMqgCySX7dUhwYh5Q

981 :デフォルトの名無しさん:2019/05/18(土) 02:15:29.87 ID:jjK+y75q.net
>>925
Java
https://paiza.io/projects/VRVZT8GnP7oLaOjx4B8LtQ?language=java

982 :デフォルトの名無しさん:2019/05/18(土) 07:46:37.95 ID:w6U4ewGf.net
>>925 Python

ol = [-6, 3, 9, 5, 3, -7]
print([ sorted(set(ol)).index(x)+1 for x in ol ] )

# [2, 3, 5, 4, 3, 1]

983 :デフォルトの名無しさん:2019/05/18(土) 10:52:55.70 ID:0WkfcTHM.net
>>976
1. すべての自然数nに対してf(n)≠n
2. 自然数m,nがm≠nを満たすときf(m)≠f(n)
を満たすような関数f(n)を作れってこと

例えば
1. 入力が1のとき出力は1以外
2. 入力が1のときと2のときで出力が同じになってはダメ

984 :デフォルトの名無しさん:2019/05/18(土) 11:06:29.35 ID:spo9+l+a.net
>>983
2はいらんやろ
適当なコト抜かすなごかすぞぼけ

985 :デフォルトの名無しさん:2019/05/18(土) 11:10:21.66 ID:vBrA8iCH.net
単射である必要はない。全射でさえあればよい

986 :デフォルトの名無しさん:2019/05/18(土) 12:08:52.78 ID:R97vL30T.net
難しすぎて全くわからん…
ハローワールド始めて間もない男にも分かる問題を出してくれぬか
優しく教えて欲しい

987 :デフォルトの名無しさん:2019/05/18(土) 12:10:33.89 ID:HBaY+7WM.net
>>954
これがあれば1Mbyteのファイルが2byteになっちゃうのか?

988 :デフォルトの名無しさん:2019/05/18(土) 12:48:31.15 ID:PrlqGkYa.net
>>983 これのどこがプログラムの問題なのかさっぱりわからん。 小学生の練習問題か?

例えば自然数が 1から4までとした場合、f(n) の出力配列は
f(1) 2,3,4
f(2) 1,3,4
f(3) 1,2,4
f(4) 1,2,3
と言う事だろ? どうしてこんな問題を出したかさっぱり分からん、何か勘違いしてる?

989 :デフォルトの名無しさん:2019/05/18(土) 14:29:45.05 ID:5ij/PJHb.net
>>925 c
https://ideone.com/JBbm04

990 :デフォルトの名無しさん:2019/05/18(土) 14:46:59.19 ID:0WkfcTHM.net
>>984
「隙間なく」を満たすには全射である必要があるけど、今回は定義域と終域が等しいから単射なら自動的に全射になる
全射の条件より単射の条件のほうが説明が楽だから許してくれ

>>988
出題者じゃないから意図は分からんが、自然数を自身以外の自然数に変換するのが題意だからその例は間違っている
f(n)が返すのは自然数であってベクトル(配列)ではない

991 : :2019/05/18(土) 14:50:54.64 ID:To+6m73X.net
>>985
>単射である必要はない。全射でさえあればよい

???

>>983
2. 自然数m,nがm≠nを満たすときf(m)≠f(n)

これって単射の定義そのものなのでは?
だから単射である必要があるのでは?

f が単射でない場合 f:a->z, f:b->z だった場合に a != b にもかかわらず f(a)=f(b) で 2 を満たさない

992 :デフォルトの名無しさん:2019/05/18(土) 14:57:54.95 ID:jXb4UL4k.net
def f(n)
n + 1
end
一応>>983は満たしてる

993 :デフォルトの名無しさん:2019/05/18(土) 15:16:22.17 ID:0WkfcTHM.net
>>990
追記
単射なら全射になるのは有限集合の場合だったわ

お詫びにお題
入力n(2≤n≤2^31-1)を素因数分解してそれを表示せよ
入力例)
28
2002
216653
出力例)
2^2*7
2*7*11*13
216653

994 :デフォルトの名無しさん:2019/05/18(土) 15:45:24.30 ID:kdcwh9zo.net
>>893 Perl5

@a=([a, 0, 0],
   [b, 2, 0],
   [c, 4, 0],
   [d, 0, 2]);
sub {$t[$_[2]][$_[1]] = $_[0]}->(@$_) for @a;
@b = map{[map{$_ // ' '} @$_]} map{[@$_]} @t;
undef $";
$s = join'', map{"@$_\n"} @b;
print $s;


実行
~ $ perl 13_888.pl
a b c

d

995 :デフォルトの名無しさん:2019/05/18(土) 15:57:05.04 ID:0itJzGag.net
ハローワールドなら任せて欲しい

996 :デフォルトの名無しさん:2019/05/18(土) 16:05:30.57 ID:5ij/PJHb.net
>>993 octave
https://ideone.com/V5luwe

997 :デフォルトの名無しさん:2019/05/18(土) 16:32:58.07 ID:BaKYgAyw.net
>>995
任せた。

998 :デフォルトの名無しさん:2019/05/18(土) 17:19:27.10 ID:4C+see96.net
>>995
はよ次スレをハローワールドしろや

999 :デフォルトの名無しさん:2019/05/18(土) 17:34:28.08 ID:BWmpW4IF.net
>>995 C89
https://ideone.com/IJb1ar

1000 :デフォルトの名無しさん:2019/05/18(土) 17:35:58.58 ID:BWmpW4IF.net
>>998 次スレ
https://mevius.5ch.net/test/read.cgi/tech/1558168409/

1001 :デフォルトの名無しさん:2019/05/18(土) 17:56:26.22 ID:4C+see96.net
>>1000
乙。

1002 :デフォルトの名無しさん:2019/05/18(土) 21:05:17.15 ID:sChpoVCN.net
>>993 Pharo/Squeak Smalltalk

| fn |

fn := [:n |
| m bag |
m := n.
bag := Bag new.
Integer primesUpTo: n sqrt + 1 do: [:prime |
[m isDivisibleBy: prime] whileTrue: [m := m / (bag add: prime)]
].
m > 1 ifTrue: [bag add: m].
String streamContents: [:ss |
bag valuesAndCounts associations sort do: [:assoc |
ss nextPutAll: assoc key asString.
assoc value > 1 ifTrue: [ss nextPutAll: '^', assoc value asString]
] separatedBy: [ss nextPut: $*]
]
].

fn value: 28. "=> '2^2*7' "
fn value: 2002. "=> '2*7*11*13' "
fn value: 216653. "=> '216653' "

1003 :デフォルトの名無しさん:2019/05/18(土) 21:18:36.25 ID:PrlqGkYa.net
>>992 何か落とし穴があるとしたら、巨大数かなと思い、自然数を増やしてみると、python( iOSのpythonista , ideon )では配列数は 10**7 までだった。

大きな連続数の配列なんて作るバカはいないだろうし、ますます問題の意図がわからん。

一応書いてみたが、lambda 1行のみ ,(def でも何でも良いが)
f978 = lambda x,n:[i for i in range(1,n+1) if i != x]
xが自分の数字、n は自然数の数

https://ideone.com/iMUZ96

呼び出しは、f978(3,10**6) の様に
出力の配列数が大きくなると全ての数のPrint はアホらしいので、
10以上は配列数だけを出してる( これも n-1 だからアホらしいのだが )

out(1,4)
out(2,4)
out(4,4)

out(10**2,10**7)

stdout
個数 n= 4 自数 x= 1 自数以外の数= 3
[2, 3, 4]
個数 n= 4 自数 x= 2 自数以外の数= 3
[1, 3, 4]
個数 n= 4 自数 x= 4 自数以外の数= 3
[1, 2, 3]
個数 n= 10000000 自数 x= 100 自数以外の数= 9999999

1004 :デフォルトの名無しさん:2019/05/18(土) 21:29:48.34 ID:PrlqGkYa.net
問題をひねって、不連続のランダムの整数としてもほとんど変わらないだろ。

1005 :デフォルトの名無しさん:2019/05/18(土) 21:31:36.43 ID:gB6Wr8nG.net
(´・_・`)

1006 :2ch.net投稿限界:Over 1000 Thread
2ch.netからのレス数が1000に到達しました。

総レス数 1006
333 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★