[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 06/28 06:35 / Filesize : 332 KB / Number-of Response : 1028
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



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

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

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

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

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

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

926 名前:デフォルトの名無しさん [2019/05/12(日) 02:01:10.46 ID:FbICTnq7.net]
>>880
Java
https://paiza.io/projects/VSqA-UZgWeXB-YzVTnrQRg

takeUntilが欲しいなー

927 名前:デフォルトの名無しさん [2019/05/12(日) 06:46:28.87 ID:R9TUiFuu.net]
>>880
コラッツ樹で作れば出力を減らせる。

928 名前:デフォルトの名無しさん [2019/05/14(火) 02:59:08.35 ID:3xJ0OqNt.net]
>>882
Kotlin
https://paiza.io/projects/Aab0mA1WSwXHnHL2049hCA

for や while ループ使わずに forEachIndexed で入れ子にしてみました。

929 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 09:26:15.81 ID:zeev4Evh.net]
>>882
Ruby で

text = <<"EOT"
a b c

d
EOT

re = /[^ ]+/ # 空白以外

text.each_line.with_index do | line, idx | # 1行ずつ処理する
line.strip! # trim
# $~.begin は、マッチした先頭文字の位置
line.scan( re ) { puts "[" + [ $~.to_s, $~.begin(0), idx ].join( ", " ) + "]" }
end

930 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 10:07:03.30 ID:rKVVoOG1.net]
>>891 をスッキリ修正してみた
改行コード指定をやめ、for loop のカウンタを利用

>>882 の解

st = '''a b c

d
'''
for line,l in enumerate(st.splitlines()) :
 for col,c in enumerate(l):
  if c != ' ' : print('['+c, col,str(line)+']',sep=',')

931 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 14:12:15.49 ID:8QdSJZ63.net]
>>910
空白以外は\Sでマッチするぞ

932 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 23:52:44.04 ID:AtHJrRxM.net]
>>882 Squeak Smalltalk

| fn |

fn := [:str |
((str lines collectWithIndex: [:line :lIdx |
(line reject: #isSeparator) asArray
collect: [:chr | {chr. (line indexOf: chr) - 1. lIdx - 1}]]
) concatenation select: #notEmpty) asStringWithCr
].

fn value: 'a b c

d'

"=>
'#($a 0 0)
#($b 2 0)
#($c 4 0)
#($d 0 2)' "

933 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 01:06:44.65 ID:tCUIeJeC.net]
>>913 smalltalk って全く知らないけど、最後が出力のつもり?
だったらお題の出力フォーマットと似ても似つかないじゃん。

934 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 03:57:52.07 ID:i8y0s24p.net]
いや似てる



935 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 04:50:48.17 ID:TsVBVaTo.net]
>>882 Squeak/Pharo Smalltalk
出力はともかく同行に同文字があるとダメだった^^;ので>>913 差し替え

| fn |

fn := [:str |
((str lines collectWithIndex: [:line :lIdx |
(line asArray collectWithIndex: [:chr :cIdx | {chr. cIdx - 1. lIdx - 1}]
) reject: [:each | each first isSeparator]]
) concatenation
select: #notEmpty thenCollect: [:each | '[{1}, {2}, {3}]' format: each]) asStringWithCr
].

fn value: 'a b c

d'

"=>
[a, 0, 0]
[b, 2, 0]
[c, 4, 0]
[d, 0, 2] "

936 名前:905 [2019/05/15(水) 09:57:59.71 ID:AfKgri37.net]
>>912
re = /[^ ]+/
空白以外だから、上のようにしたけど、空白"類"以外なら、\S+ でよい

問題の意図がどちらなのか、よく分からない

937 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 23:43:58.92 ID:jmndeABE.net]
>>882 c
https://ideone.com/tIcQPK

>>882 ruby
https://ideone.com/qMREyy

>>882 ocaml
https://ideone.com/uaNmRF

>>882 octave
https://ideone.com/psnXl5

938 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 01:50:16.53 ID:4fy8zsNP.net]
>>918
C以外は助長だな

939 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 03:57:55.40 ID:6BLr95cC.net]
>>919
具体的にはどの処理のどの部分を冗長に感じられたのでしょうか?
たとえばRubyの回答がどう冗長か(あるいはどう書けば良いか)教えてください!

940 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 08:25:20.49 ID:MujhV/Cm.net]
>>918 故意にpython 外しはずるい。
>>882 python
https://ideone.com/yvFuOl

printフォーマットは、コメントにしたpython3.6のf文字列の方がシンプルだが、ideone は3.5しかないのでformat文にした。

941 名前:デフォルトの名無しさん [2019/05/16(木) 10:18:52.91 ID:YVMjr/q8.net]
>>882
Go
https://ideone.com/mJOisR

コンパクトにならんね

942 名前:デフォルトの名無しさん [2019/05/16(木) 14:34:08.16 ID:YVMjr/q8.net]
>>893
Go
https://ideone.com/x2iyka

943 名前:デフォルトの名無しさん [2019/05/16(木) 19:26:40.27 ID:ktv4pd0R.net]
>>882
C++
https://ideone.com/cbDkCt

944 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 20:28:13.91 ID:3sIrlJF4.net]
お題
整数の数列が与えられるので、各値の大小関係を変えないように値をなるべく小さくせよ
ただし1番小さい要素は1にすること
入力
-6 3 9 5 3 -7
出力
2 3 5 4 3 1



945 名前:デフォルトの名無しさん [2019/05/16(木) 21:00:21.83 ID:/dAesd8e.net]
>>925
c++
https://ideone.com/zEwKOk

946 名前: mailto:sage [2019/05/16(木) 21:47:12.78 ID:m1RdOLwU.net]
>>925
>値をなるべく小さくせよ
絶対値を小さく、という意味ですか?

947 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 22:59:47.34 ID:0eZXbfha.net]
>>925 Pharo/Squeak Smalltalk

| fn |

fn := [:arr |
| sorted |
sorted := arr asSet sorted.
arr collect: [:x | sorted indexOf: x]
].

fn value: #(-6 3 9 5 3 -7). "=> #(2 3 5 4 3 1) "

948 名前:913 mailto:sage [2019/05/16(木) 23:00:52.84 ID:02wuysYU.net]
>>882 ocaml
https://ideone.com/waZZh7
・自分に正直になってrefとforループで書いた

>>919
じょ、助長…

>>921
外しと言うより、たんに不勉強
python書けないんよね(´・ω・`)

949 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 23:34:17.56 ID:YXKZQo24.net]
>>928 Perl5

@a = qw{-6 3 9 5 3 -7};
$h{$_}=1 for @a;
%o = map{$_=>++$i} sort{$a<=>$b} keys %h;
@b = map{$o{$_}} @a;
print "@a => @b\n";

実行
~ $ perl 13_920.pl
-6 3 9 5 3 -7 => 2 3 5 4 3 1

950 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 23:42:11.94 ID:YXKZQo24.net]
>>930
アンカーしくった、>>925 宛だった…orz

951 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 23:44:54.09 ID:02wuysYU.net]
>>925 octave
https://ideone.com/f9S91N

952 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 00:26:31.35 ID:SI3/qEwo.net]
>>893 Pharo/Squeak Smalltalk

| fn |

fn := [:arr |
String streamContents: [:ss |
| cIdx lIdx |
cIdx := lIdx := 0.
arr do: [:spec |
spec third > lIdx ifTrue: [
ss nextPutAll: (String new: spec third - lIdx withAll: Character cr).
lIdx := spec third.
cIdx := 0
].
ss nextPutAll: (String new: spec second - cIdx withAll: Character space).
ss nextPutAll: spec first.
cIdx := spec second + 1.
]
]
].

fn value: #(
(a 0 0)
(b 2 0)
(c 4 0)
(d 0 2)).

"=>
a b c


d "

953 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 00:35:47.85 ID:HrEfbPs9.net]
>>932
重複除去でソート後のインデックスを返す関数?
チート過ぎてわろたw

954 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 00:55:59.72 ID:TuAgku6e.net]
最近jニキ来ないな



955 名前:デフォルトの名無しさん [2019/05/17(金) 01:23:24.98 ID:UHIjSpei.net]
>>925
Kotlin
https://paiza.io/projects/NMOKqrUnEfwIbLSRmrMMmQ

956 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 07:54:47.22 ID:9a+COZnd.net]
>>893
s = '''\
[a, 0, 0]
[b, 2, 0]
[c, 4, 0]
[d, 0, 2]
'''

from parse import * #pip install

col2 = 0 ; line2 = 0
for l in s.splitlines():
 col = col2 ; line = line2
 r=parse('[{},{},{}]',l)
 c= r[0]
 col2 = int(r[1]) ; line2 = int(r[2])
 {print() for _ in range(line2-line) }
 {print(' ',end='') for _ in range(col2-col)}
 print(c, end='')
 col2 += 1
print()

'''#出力
a b c

d
'''

957 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 08:32:11.25 ID:9a+COZnd.net]
>>937 parse に型指定追加
>>893 Python
s = '''\
[a, 0, 0]
[b, 2, 0]
[c, 4, 0]
[d, 0, 2]
'''

from parse import * #pip install

col2 = 0 ; line2 = 0
for l in s.splitlines():
 col = col2 ; line = line2
 (c,col2,line2) = parse('[{},{:d},{:d}]',l)
 {print() for _ in range(line2-line) }
 {print(' ',end='') for _ in range(col2-col)}
 print(c, end='')
 col2 += 1
print()

'''#出力
a b c

d
'''

958 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 12:14:50.20 ID:8VLhbVxR.net]
>>925
は、ランク付けの問題だろ

入力データ
-6 3 9 5 3 -7
出力・ランク
2 3 5 4 3 1

入力データの最も小さい数字を、ランク1 にして、
数字が大きくなるほど、ランクも大きくしていく

同値の場合は、同じランクにして、次のランクも間隔を空けない。
ランク3 が2つあっても、次は、ランク4

つまり、ランクが欠けることはない!

959 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 12:23:14.18 ID:99nnd/tf.net]
>>939
うるせぇ死ね

960 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 12:39:09.53 ID:L8EHraRu.net]
難しく書いてたけど結局これだけなのか
問題文をわざと複雑に見せかける現代文読解と同じ仕組みじゃないか

961 名前:デフォルトの名無しさん [2019/05/17(金) 12:49:18.63 ID:ut9H1r3U.net]
プログラム作る前に気づいたので>>936のリンク先のブログラムのタイトルは密かに「順位」にしといたw

962 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 12:50:56.11 ID:l82uGMBO.net]
>>941
わざと難しく見せかけているというよ

963 名前:閨Aたんに説明が下手なだけだと思う []
[ここ壊れてます]

964 名前:デフォルトの名無しさん mailto:age [2019/05/17(金) 13:23:46.56 ID:gFFtTihX.net]
別に難しくない件



965 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 13:29:01.98 ID:L8EHraRu.net]
そうですね
難易度は主観ですね
なら短さ長さを比べるとこうなります

・各値の大小関係を変えないように値をなるべく小さくせよ
・ランク付けせよ

もしかしたらこれが要するにただのランク付けだと分かるまで何人が挑戦するかを試してみる社会調査だったのかもしれません

966 名前:デフォルトの名無しさん [2019/05/17(金) 13:36:08.80 ID:/5AjAxyT.net]
>ランク付けだと分かるまで何人が挑戦するかを試してみる

まさにそうじゃないの?

967 名前:デフォルトの名無しさん [2019/05/17(金) 13:44:50.72 ID:mxL0YWmq.net]
>>925 J
f =: >: @ (i.~ /:~ @ ~.)

f _6 3 9 5 3 _7
2 3 5 4 3 1

968 名前:デフォルトの名無しさん mailto:age [2019/05/17(金) 14:08:19.69 ID:gFFtTihX.net]
>>945
アスペ

969 名前:デフォルトの名無しさん mailto:age [2019/05/17(金) 14:08:53.72 ID:gFFtTihX.net]
問題文を添削しちゃう皆さん

970 名前:デフォルトの名無しさん mailto:age [2019/05/17(金) 14:20:43.10 ID:gFFtTihX.net]
>>927

971 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 15:06:17.59 ID:Jb6joIEA.net]
さすがにいちゃもん付け過ぎだろ
元の問題文読めば普通はわかるだろ

972 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 15:51:11.97 ID:99nnd/tf.net]
問題: おっぱいをなるべく小さくせよ。

973 名前:デフォルトの名無しさん [2019/05/17(金) 16:00:34.70 ID:ut9H1r3U.net]
>>952
(・)(・)

(・)(・)

974 名前:デフォルトの名無しさん [2019/05/17(金) 16:18:22.99 ID:X2USxdO3.net]
お題:自然数を隙間なく自分自身以外の数に対応させよ。



975 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 16:46:21.83 ID:9GdSR9hc.net]
>>954 先生、対応させると言う日本語がわかりません。
日本人には難しいです。

976 名前:デフォルトの名無しさん [2019/05/17(金) 17:04:52.99 ID:ut9H1r3U.net]
>>954
君が何を言っているのかわからない。

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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



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

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

997 名前:デフォルトの名無しさん [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)のような出力にする関数じゃないか?

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

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

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

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

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

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

1002 名前:デフォルトの名無しさん mailto:sage [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]

1003 名前:デフォルトの名無しさん mailto:sage [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のときで出力が同じになってはダメ

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



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

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

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

1008 名前:デフォルトの名無しさん mailto:sage [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
と言う事だろ? どうしてこんな問題を出したかさっぱり分からん、何か勘違いしてる?

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

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

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

1011 名前: mailto:sage [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 を満たさない

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

1013 名前:デフォルトの名無しさん mailto:sage [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

1014 名前:デフォルトの名無しさん mailto:sage [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



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

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

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

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

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

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

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

1022 名前:デフォルトの名無しさん mailto:sage [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' "

1023 名前:デフォルトの名無しさん mailto:sage [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

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



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

1026 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 104日 10時間 9分 43秒






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<332KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef