[過去ログ] プログラミングのお題スレ Part13 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1
(5): 2019/02/03(日)11:21 ID:72eosYJ+(1/3)調 AAS
プログラミングのお題スレです。

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

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

※前スレ
2chスレ:tech
903: 2019/05/12(日)06:46 ID:R9TUiFuu(1)調 AAS
>>875
コラッツ樹で作れば出力を減らせる。
904: 2019/05/14(火)02:59 ID:3xJ0OqNt(1)調 AAS
>>877
Kotlin
https://paiza.io/projects/Aab0mA1WSwXHnHL2049hCA

for や while ループ使わずに forEachIndexed で入れ子にしてみました。
905
(2): 2019/05/14(火)09:26 ID:zeev4Evh(1)調 AAS
>>877
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
906: 2019/05/14(火)10:07 ID:rKVVoOG1(1)調 AAS
>>886 をスッキリ修正してみた
改行コード指定をやめ、for loop のカウンタを利用

>>877 の解

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=',')
907
(1): 2019/05/14(火)14:12 ID:8QdSJZ63(1)調 AAS
>>905
空白以外は\Sでマッチするぞ
908
(2): 2019/05/14(火)23:52 ID:AtHJrRxM(1)調 AAS
>>877 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)' "
909: 2019/05/15(水)01:06 ID:tCUIeJeC(1)調 AAS
>>908 smalltalk って全く知らないけど、最後が出力のつもり?
だったらお題の出力フォーマットと似ても似つかないじゃん。
910: 2019/05/15(水)03:57 ID:i8y0s24p(1)調 AAS
いや似てる
911: 2019/05/15(水)04:50 ID:TsVBVaTo(1)調 AAS
>>877 Squeak/Pharo Smalltalk
出力はともかく同行に同文字があるとダメだった^^;ので>>908 差し替え

| 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] "
912: 905 2019/05/15(水)09:57 ID:AfKgri37(1)調 AAS
>>907
re = /[^ ]+/
空白以外だから、上のようにしたけど、空白"類"以外なら、\S+ でよい

問題の意図がどちらなのか、よく分からない
913
(3): 2019/05/15(水)23:43 ID:jmndeABE(1)調 AAS
>>877 c
https://ideone.com/tIcQPK

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

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

>>877 octave
https://ideone.com/psnXl5
914
(2): 2019/05/16(木)01:50 ID:4fy8zsNP(1)調 AAS
>>913
C以外は助長だな
915: 2019/05/16(木)03:57 ID:6BLr95cC(1)調 AAS
>>914
具体的にはどの処理のどの部分を冗長に感じられたのでしょうか?
たとえばRubyの回答がどう冗長か(あるいはどう書けば良いか)教えてください!
916
(1): 2019/05/16(木)08:25 ID:MujhV/Cm(1)調 AAS
>>913 故意にpython 外しはずるい。
>>877 python
https://ideone.com/yvFuOl

printフォーマットは、コメントにしたpython3.6のf文字列の方がシンプルだが、ideone は3.5しかないのでformat文にした。
917: 2019/05/16(木)10:18 ID:YVMjr/q8(1/2)調 AAS
>>877
Go
https://ideone.com/mJOisR

コンパクトにならんね
918: 2019/05/16(木)14:34 ID:YVMjr/q8(2/2)調 AAS
>>888
Go
https://ideone.com/x2iyka
919: 2019/05/16(木)19:26 ID:ktv4pd0R(1)調 AAS
>>877
C++
https://ideone.com/cbDkCt
920
(12): 2019/05/16(木)20:28 ID:3sIrlJF4(1)調 AAS
お題
整数の数列が与えられるので、各値の大小関係を変えないように値をなるべく小さくせよ
ただし1番小さい要素は1にすること
入力
-6 3 9 5 3 -7
出力
2 3 5 4 3 1
921: 2019/05/16(木)21:00 ID:/dAesd8e(1)調 AAS
>>920
c++
https://ideone.com/zEwKOk
922
(1): ◆QZaw55cn4c 2019/05/16(木)21:47 ID:m1RdOLwU(1)調 AAS
>>920
>値をなるべく小さくせよ
絶対値を小さく、という意味ですか?
923
(1): 2019/05/16(木)22:59 ID:0eZXbfha(1)調 AAS
>>920 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) "
924: 913 2019/05/16(木)23:00 ID:02wuysYU(1/2)調 AAS
>>877 ocaml
https://ideone.com/waZZh7
・自分に正直になってrefとforループで書いた

>>914
じょ、助長…

>>916
外しと言うより、たんに不勉強
python書けないんよね(´・ω・`)
925
(1): 2019/05/16(木)23:34 ID:YXKZQo24(1/2)調 AAS
>>923 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
926: 2019/05/16(木)23:42 ID:YXKZQo24(2/2)調 AAS
>>925
アンカーしくった、>>920 宛だった…orz
927
(1): 2019/05/16(木)23:44 ID:02wuysYU(2/2)調 AAS
>>920 octave
https://ideone.com/f9S91N
928: 2019/05/17(金)00:26 ID:SI3/qEwo(1)調 AAS
>>888 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 "
929: 2019/05/17(金)00:35 ID:HrEfbPs9(1)調 AAS
>>927
重複除去でソート後のインデックスを返す関数?
チート過ぎてわろたw
930: 2019/05/17(金)00:55 ID:TuAgku6e(1)調 AAS
最近jニキ来ないな
931
(1): 2019/05/17(金)01:23 ID:UHIjSpei(1)調 AAS
>>920
Kotlin
https://paiza.io/projects/NMOKqrUnEfwIbLSRmrMMmQ
932
(1): 2019/05/17(金)07:54 ID:9a+COZnd(1/3)調 AAS
>>888
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
'''
933: 2019/05/17(金)08:32 ID:9a+COZnd(2/3)調 AAS
>>932 parse に型指定追加
>>888 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
'''
934
(1): 2019/05/17(金)12:14 ID:8VLhbVxR(1)調 AAS
>>920
は、ランク付けの問題だろ

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

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

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

つまり、ランクが欠けることはない!
935: 2019/05/17(金)12:23 ID:99nnd/tf(1/3)調 AAS
>>934
うるせぇ死ね
936
(1): 2019/05/17(金)12:39 ID:L8EHraRu(1/4)調 AAS
難しく書いてたけど結局これだけなのか
問題文をわざと複雑に見せかける現代文読解と同じ仕組みじゃないか
937: 2019/05/17(金)12:49 ID:ut9H1r3U(1/4)調 AAS
プログラム作る前に気づいたので>>931のリンク先のブログラムのタイトルは密かに「順位」にしといたw
938: 2019/05/17(金)12:50 ID:l82uGMBO(1)調 AAS
>>936
わざと難しく見せかけているというより、たんに説明が下手なだけだと思う
939: [age] 2019/05/17(金)13:23 ID:gFFtTihX(1/4)調 AAS
別に難しくない件
940
(1): 2019/05/17(金)13:29 ID:L8EHraRu(2/4)調 AAS
そうですね
難易度は主観ですね
なら短さ長さを比べるとこうなります

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

もしかしたらこれが要するにただのランク付けだと分かるまで何人が挑戦するかを試してみる社会調査だったのかもしれません
941: 2019/05/17(金)13:36 ID:/5AjAxyT(1)調 AAS
>ランク付けだと分かるまで何人が挑戦するかを試してみる

まさにそうじゃないの?
942
(1): 2019/05/17(金)13:44 ID:mxL0YWmq(1)調 AAS
>>920 J
f =: >: @ (i.~ /:~ @ ~.)

f _6 3 9 5 3 _7
2 3 5 4 3 1
943: [age] 2019/05/17(金)14:08 ID:gFFtTihX(2/4)調 AAS
>>940
アスペ
944: [age] 2019/05/17(金)14:08 ID:gFFtTihX(3/4)調 AAS
問題文を添削しちゃう皆さん
945: [age] 2019/05/17(金)14:20 ID:gFFtTihX(4/4)調 AAS
>>922
946: 2019/05/17(金)15:06 ID:Jb6joIEA(1/6)調 AAS
さすがにいちゃもん付け過ぎだろ
元の問題文読めば普通はわかるだろ
947
(2): 2019/05/17(金)15:51 ID:99nnd/tf(2/3)調 AAS
問題: おっぱいをなるべく小さくせよ。
948: 2019/05/17(金)16:00 ID:ut9H1r3U(2/4)調 AAS
>>947
(・)(・)

(・)(・)
949
(5): 2019/05/17(金)16:18 ID:X2USxdO3(1)調 AAS
お題:自然数を隙間なく自分自身以外の数に対応させよ。
950: 2019/05/17(金)16:46 ID:9GdSR9hc(1/4)調 AAS
>>949 先生、対応させると言う日本語がわかりません。
日本人には難しいです。
951: 2019/05/17(金)17:04 ID:ut9H1r3U(3/4)調 AAS
>>949
君が何を言っているのかわからない。
952: 2019/05/17(金)17:24 ID:L8EHraRu(3/4)調 AAS
>>949
パッ見で分からん
953
(1): 2019/05/17(金)18:07 ID:nEasvejW(1)調 AAS
偶数なら1引く
奇数なら1足すとかでいいんじゃないの
954: 2019/05/17(金)18:39 ID:9GdSR9hc(2/4)調 AAS
>>953 良いんじゃないのじゃなくて、他の人が理解できる言葉に翻訳してよ。
これじゃ小学校の国語で平均点以下だろ。

日本語が不自由ならプログラム例を示せば良い。変な言語はダメだけど、C系の素直な言語なら万国共通
955
(1): 2019/05/17(金)19:30 ID:Jb6joIEA(2/6)調 AAS
要はf: N -> N の∀n∈N f(n) ≠ n かつ全単射な写像を求めろってことでしょ
956
(1): 2019/05/17(金)19:35 ID:Jb6joIEA(3/6)調 AAS
あ、単射じゃなくてもいいか
957
(1): 2019/05/17(金)19:40 ID:9GdSR9hc(3/4)調 AAS
>>955 あのさ、それで人に通じると思ってるの?
そんな仕様書を書いて誰がコーディングするんだよ。

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

言語能力にかけてるやつは、自分の頭の中が周りの人からスケスケに見えてると言う妄想を持ってる。
狭い世界で通用しても社会では通用しない。
958: 2019/05/17(金)19:47 ID:9GdSR9hc(4/4)調 AAS
ここまで何人もの人がわからんと言ってるのは、その仕様を出した人間の素質が失格という事だろ。

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

バカにわからせなければ、PLは務まらないよ。
と言うか、仕事は一般人としてるのに何をトチ狂ってるんだ? かなり精神を疑うな。
959
(1): 2019/05/17(金)19:50 ID:Jb6joIEA(4/6)調 AAS
教養のないやつに限ってブチ切れる
960: 2019/05/17(金)20:11 ID:KIX3RA0i(1)調 AAS
>>947
桃白白改めミスターポポ改めピラフ改めピッコロさん、くだらない出題はやめてください
961
(1): 2019/05/17(金)20:11 ID:9a+COZnd(3/3)調 AAS
>>959 で、どんな問題なんだ? プログラミングできる仕様として出してくれよ。
962
(1): ◆QZaw55cn4c 2019/05/17(金)20:21 ID:e+Q6zZPk(1/2)調 AAS
>>956
単射でないとなると、n に対して n % 10 を対応付けるとかもありになりますね…

>>957
全射、単射、全単射とかは普通に使う単語ですよ、知らないのなら、これらの術語を含む数学の本…代数ですかね?解析ですかね?よくわからないや、を一冊読んでみるのがいいですね
963
(1): 2019/05/17(金)20:46 ID:Jb6joIEA(5/6)調 AAS
>>961
出題者に言えよ

>>962
%じゃ全射にも単射にもならんぞ
上で誰かが言ってた遇奇を入れ替えたりだとか
f(n) = n - 1, f(0) = 0以外の任意の値
とかなんでもありだね。つまらんけど
964
(1): 2019/05/17(金)20:48 ID:99nnd/tf(3/3)調 AAS
顔射は普通に使う単語ですか?
965
(1): ◆QZaw55cn4c 2019/05/17(金)20:51 ID:e+Q6zZPk(2/2)調 AAS
>>963
>%じゃ全射にも単射にもならんぞ
そうですね、じゃ、割り算の商の整数部分「/」とかはどうでしょう
966: 2019/05/17(金)21:06 ID:ut9H1r3U(4/4)調 AAS
>>964
はい。
967: 2019/05/17(金)21:09 ID:Jb6joIEA(6/6)調 AAS
>>965
そりゃなんでもありよ
その場合は0の時だけ別の値を定義すれば良し
968: 2019/05/17(金)21:30 ID:0M7uQZeH(1)調 AAS
920だが、ランク付けだと解が236531と解釈される可能性が有ったので避けた
もっと簡単な書き方があるはそう思う、座圧+1とかでも伝わるだろうし……
969: 2019/05/17(金)22:36 ID:gcMK/Ofn(1)調 AAS
数値のリストを入力し、値の小さい順に1から順位を付けて、
順位のリストを出力する。同じ値は同じ順位とする
970: 2019/05/17(金)22:47 ID:TGYryIO4(1)調 AAS
ほんとそれ
ピラフ改めピッコロはさっさと自害しろ
971
(2): 2019/05/17(金)23:20 ID:L8EHraRu(4/4)調 AAS
>>949
やっぱりどういう入出力の具体例になるのか分からない
どういうことなんだよ
972
(1): 2019/05/17(金)23:47 ID:xYITnAAv(1)調 AAS
>>971
あくまで俺の推測だが
一例として、自分自身の数が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)のような出力にする関数じゃないか?

ただお題の条件としてはもっとゆるくて、入力はオーバーフローしない範囲の自然数、出力は「自分自身の数」を含まない自然数になれば何でもよくて、
定数関数でもハッシュ関数でもいいはず。
ただし、ある入力に対して必ず決まった値にならなければならず、同じ入力で呼び出すたびに出力が違うのはダメ。
973: 2019/05/18(土)00:15 ID:w6U4ewGf(1/2)調 AAS
>>972 何をアホな事を言ってるんだ? そんなの小学生に数を数えなさいと言ってるのと等しいぞ。

それのどこがプログラミングのお題なんだ?
バカじゃないのか?
974: 2019/05/18(土)01:03 ID:bbC9YGRR(1)調 AAS
>>942
乙、見事。
975: 2019/05/18(土)01:57 ID:jjK+y75q(1/2)調 AAS
>>920
C#
https://paiza.io/projects/OXVNCyMqgCySX7dUhwYh5Q
976: 2019/05/18(土)02:15 ID:jjK+y75q(2/2)調 AAS
>>920
Java
https://paiza.io/projects/VRVZT8GnP7oLaOjx4B8LtQ?language=java
977: 2019/05/18(土)07:46 ID:w6U4ewGf(2/2)調 AAS
>>920 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]
978
(4): 2019/05/18(土)10:52 ID:0WkfcTHM(1/3)調 AAS
>>971
1. すべての自然数nに対してf(n)≠n
2. 自然数m,nがm≠nを満たすときf(m)≠f(n)
を満たすような関数f(n)を作れってこと

例えば
1. 入力が1のとき出力は1以外
2. 入力が1のときと2のときで出力が同じになってはダメ
979
(1): 2019/05/18(土)11:06 ID:spo9+l+a(1)調 AAS
>>978
2はいらんやろ
適当なコト抜かすなごかすぞぼけ
980
(1): 2019/05/18(土)11:10 ID:vBrA8iCH(1)調 AAS
単射である必要はない。全射でさえあればよい
981: 2019/05/18(土)12:08 ID:R97vL30T(1)調 AAS
難しすぎて全くわからん…
ハローワールド始めて間もない男にも分かる問題を出してくれぬか
優しく教えて欲しい
982: 2019/05/18(土)12:10 ID:HBaY+7WM(1)調 AAS
>>949
これがあれば1Mbyteのファイルが2byteになっちゃうのか?
983
(1): 2019/05/18(土)12:48 ID:PrlqGkYa(1/3)調 AAS
>>978 これのどこがプログラムの問題なのかさっぱりわからん。 小学生の練習問題か?

例えば自然数が 1から4までとした場合、f(n) の出力配列は
f(1) 2,3,4
f(2) 1,3,4
f(3) 1,2,4
f(4) 1,2,3
と言う事だろ? どうしてこんな問題を出したかさっぱり分からん、何か勘違いしてる?
984: 2019/05/18(土)14:29 ID:5ij/PJHb(1/2)調 AAS
>>920 c
https://ideone.com/JBbm04
985
(1): 2019/05/18(土)14:46 ID:0WkfcTHM(2/3)調 AAS
>>979
「隙間なく」を満たすには全射である必要があるけど、今回は定義域と終域が等しいから単射なら自動的に全射になる
全射の条件より単射の条件のほうが説明が楽だから許してくれ

>>983
出題者じゃないから意図は分からんが、自然数を自身以外の自然数に変換するのが題意だからその例は間違っている
f(n)が返すのは自然数であってベクトル(配列)ではない
986: ◆QZaw55cn4c 2019/05/18(土)14:50 ID:To+6m73X(1)調 AAS
>>980
>単射である必要はない。全射でさえあればよい

???

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

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

f が単射でない場合 f:a->z, f:b->z だった場合に a != b にもかかわらず f(a)=f(b) で 2 を満たさない
987
(1): 2019/05/18(土)14:57 ID:jXb4UL4k(1)調 AAS
def f(n)
n + 1
end
一応>>978は満たしてる
988
(2): 2019/05/18(土)15:16 ID:0WkfcTHM(3/3)調 AAS
>>985
追記
単射なら全射になるのは有限集合の場合だったわ

お詫びにお題
入力n(2≤n≤2^31-1)を素因数分解してそれを表示せよ
入力例)
28
2002
216653
出力例)
2^2*7
2*7*11*13
216653
989: 2019/05/18(土)15:45 ID:kdcwh9zo(1)調 AAS
>>888 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
990
(3): 2019/05/18(土)15:57 ID:0itJzGag(1)調 AAS
ハローワールドなら任せて欲しい
991: 2019/05/18(土)16:05 ID:5ij/PJHb(2/2)調 AAS
>>988 octave
https://ideone.com/V5luwe
992: 2019/05/18(土)16:32 ID:BaKYgAyw(1)調 AAS
>>990
任せた。
993
(1): 2019/05/18(土)17:19 ID:4C+see96(1/2)調 AAS
>>990
はよ次スレをハローワールドしろや
994: 2019/05/18(土)17:34 ID:BWmpW4IF(1/2)調 AAS
>>990 C89
https://ideone.com/IJb1ar
995
(1): 2019/05/18(土)17:35 ID:BWmpW4IF(2/2)調 AAS
>>993 次スレ
2chスレ:tech
996: 2019/05/18(土)17:56 ID:4C+see96(2/2)調 AAS
>>995
乙。
997: 2019/05/18(土)21:05 ID:sChpoVCN(1)調 AAS
>>988 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' "
998: 2019/05/18(土)21:18 ID:PrlqGkYa(2/3)調 AAS
>>987 何か落とし穴があるとしたら、巨大数かなと思い、自然数を増やしてみると、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
999: 2019/05/18(土)21:29 ID:PrlqGkYa(3/3)調 AAS
問題をひねって、不連続のランダムの整数としてもほとんど変わらないだろ。
1000: 2019/05/18(土)21:31 ID:gB6Wr8nG(1)調 AAS
(´・_・`)
1001
(1): 1001 ID:Thread(1/2)調 AAS
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 104日 10時間 9分 43秒
1002
(1): 1002 ID:Thread(2/2)調 AAS
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。

───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.291s*