プログラミングのお題スレ Part13at TECH
プログラミングのお題スレ Part13 - 暇つぶし2ch988:デフォルトの名無しさん
19/05/17 20:46:06.10 Jb6joIEA.net
>>966
出題者に言えよ
>>967
%じゃ全射にも単射にもならんぞ
上で誰かが言ってた遇奇を入れ替えたりだとか
f(n) = n - 1, f(0) = 0以外の任意の値
とかなんでもありだね。つまらんけど

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

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

991:デフォルトの名無しさん
19/05/17 21:06:32.38 ut9H1r3U.net
>>969
はい。

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

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

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

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

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

997:デフォルトの名無しさん
19/05/17 23:47:24.37 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:デフォルトの名無しさん
19/05/18 00:15:42.42 w6U4ewGf.net
>>977 何をアホな事を言ってるんだ? そんなの小学生に数を数えなさいと言ってるのと等しいぞ。
それのどこがプログラミングのお題なんだ?
バカじゃないのか?

999:デフォルトの名無しさん
19/05/18 01:03:14.81 bbC9YGRR.net
>>947
乙、見事。

1000:デフォルトの名無しさん
19/05/18 01:57:48.06 jjK+y75q.net
>>925
C#
URLリンク(paiza.io)

1001:デフォルトの名無しさん
19/05/18 02:15:29.87 jjK+y75q.net
>>925
Java
URLリンク(paiza.io)

1002:デフォルトの名無しさん
19/05/18 07:46:37.95 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:デフォルトの名無しさん
19/05/18 10:52:55.70 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:デフォルトの名無しさん
19/05/18 11:06:29.35 spo9+l+a.net
>>983
2はいらんやろ
適当なコト抜かすなごかすぞぼけ

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

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

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

1008:デフォルトの名無しさん
19/05/18 12:48:31.15 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:デフォルトの名無しさん
19/05/18 14:29:45.05 5ij/PJHb.net
>>925 c
URLリンク(ideone.com)

1010:デフォルトの名無しさん
19/05/18 14:46:59.19 0WkfcTHM.net
>>984
「隙間なく」を満たすには全射である必要があるけど、今回は定義域と終域が等しいから単射なら自動的に全射になる
全射の条件より単射の条件のほうが説明が楽だから許してくれ
>>988
出題者じゃないから意図は分からんが、自然数を自身以外の自然数に変換するのが題意だからその例は間違っている
f(n)が返すのは自然数であってベクトル(配列)ではない

1011:
19/05/18 14:50:54.64 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:デフォルトの名無しさん
19/05/18 14:57:54.95 jXb4UL4k.net
def f(n)
n + 1
end
一応>>983は満たしてる

1013:デフォルトの名無しさん
19/05/18 15:16:22.17 0WkfcTHM.net
>>990
追記
単射なら全射になるのは有限集合の場合だったわ
お詫びにお題
入力n(2≤n≤2^31-1)を素因数分解してそれを表示せよ
入力例)
28
2002
216653
出力例)
2^2*7
2*7*11*13
216653

1014:デフォルトの名無しさん
19/05/18 15:45:24.30 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:デフォルトの名無しさん
19/05/18 15:57:05.04 0itJzGag.net
ハローワールドなら任せて欲しい

1016:デフォルトの名無しさん
19/05/18 16:05:30.57 5ij/PJHb.net
>>993 octave
URLリンク(ideone.com)

1017:デフォルトの名無しさん
19/05/18 16:32:58.07 BaKYgAyw.net
>>995
任せた。

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

1019:デフォルトの名無しさん
19/05/18 17:34:28.08 BWmpW4IF.net
>>995 C89
URLリンク(ideone.com)

1020:デフォルトの名無しさん
19/05/18 17:35:58.58 BWmpW4IF.net
>>998 次スレ
スレリンク(tech板)

1021:デフォルトの名無しさん
19/05/18 17:56:26.22 4C+see96.net
>>1000
乙。

1022:デフォルトの名無しさん
19/05/18 21:05:17.15 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:デフォルトの名無しさん
19/05/18 21:18:36.25 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 は自然数の数
URLリンク(ideone.com)
呼び出しは、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:デフォルトの名無しさん
19/05/18 21:29:48.34 PrlqGkYa.net
問題をひねって、不連続のランダムの整数としてもほとんど変わらないだろ。

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

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

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


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch